Jet Bridge (Universal) for Jet Admin – API-based Admin Panel Framework for your application

Overview

Jet Bridge   Tweet

for Jet Admin – Admin panel framework for your application

Preview

Description

Jet Admin is a SaaS service that automatically generates extendable back office for your application.
Jet Bridge is a standalone app which generates REST API thought which your SQL database is connected to Jet Admin.
This project has been designed to fit requirements of small startups and mature companies.

  • Data Privacy. Jet does not access your data: its transferred directly from browser to your application.
  • Customizable Interface. With WYSIWYG interface customization your can change almost every part of interface.
  • Extendable. Flex Features allows you to create your custom Actions, Views, Fields and other.
  • Works with any technology. The interface is generated automatically based on an analysis of the data and data structure of your database.
  • Quick installation. All you need is to install Jet Bridge and connect it to your database.

This is a complete remake of our popular Django Jet admin interface.

Features

  • CRUD (create, read, update, delete)

    All common operations to view, create, update or delete data.

    CRUD (create, read, update, delete)
  • Search and Filter

    Filter data easily by any field with most common lookups and search them by text occurrence. For some specific cases you can create SQL Segment to filter with.

    Search and Filter
  • Segments

    Segments allow you to save applied set of filters as a Segment or create it from SQL query for quick use in future.

    Segments
  • WYSIWYG Interface Customization

    You can customize almost every part of interface visually – navigation menu, collection list views, record create/update forms.

    WYSIWYG Interface Customization
  • List View layout

    A number of out-of-the-box list layouts except default Table View like Kanban Board and Map with markers.

    List View layout
  • Dashboards

    Create different types of charts, tables and other widgets to visualize your KPIs or monitor data without programming – inside your visual interface. Complex data queries can be created with SQL.

    Dashboards
  • Teams and Permissions

    Invite users to collaborate on a project and assign access rights based on their team.

    Teams and Permissions
  • Export

    You can export all collection data or part of it into the most common formats like CSV or Excel.

    Export
  • Responsive Layout

    The interface is optimized for any device from phones to tablets to desktops.

Extendability

While we are trying to include most of important features out of the box sometimes its not enough. For any specific cases we offer Flex features to implement functionality not available with standard features:

  • Custom Views

    For very specific pages you can create your own custom FlexView based on React, Angular or any other framework and integrate it in Jet Admin interface. Writing your own custom JS/CSS/HTML has no limits in implementing any page you need.

  • Custom Actions

    If need to run some operations on records or any other business logic inside your Backend you can create FlexActions and run them directly from Jet Admin interface. Passing some additional parameters to your Backend is supported.

  • Custom Fields

    Sometimes you may want custom fields that are a combination of multiple fields, use fields from related collections, or are the result of some calculation. In this case you can use FlexField and write a custom JavaScript function to format fields data in any way you want.

How It Works

Jet Admin is a SaaS frontend application hosted on Jet Admin side that works in your browser. It connects to your project SQL database through open source Jet Bridge backend application which you install on your side. So Integrating Jet Admin with your project requires installing only one component - Jet Bridge. Here how it should look like after installation:

Jet Admin architecture

Your App

Any of your applications which works with your Database. Jet Admin does not interact with it directly.

Database

Your database Jet Admin has no direct access to.

Jet Bridge

An open source application installed on your server's side and connected to your database. It automatically generates REST API based on your database structure. Jet Interface works with Database through Jet Bridge.

Jet Interface

Web application accessible from any browser. Maintaining and updating of this web application is on Jet Admin team side. Your application data is transmitted directly from Jet Bridge to Jet Interface in your browser and remain invisible for the Jet Admin service.

Requirements

  • Python 2.7 or 3.4+

  • Any of the following SQL Databases:

    • PostgreSQL
    • MySQL
    • SQLite
    • Oracle
    • Microsoft SQL Server
    • Firebird
    • Sybase

Installation

In order to install Jet Admin on your project please follow this guide:
https://app.jetadmin.io/projects/create

If you don't have Jet account yet you will be asked to create one and sign in with the existing account.

After registering your project you will be redirected to your project and can start working with Jet

Support

Feel free to Email us – [email protected]

License

This project (Jet Bridge) is MIT licensed - see the LICENCE file for details.

Comments
  • ID Field Missing When Creating New Object via JetAdmin

    ID Field Missing When Creating New Object via JetAdmin

    I'm using JetAdmin for managing a REST API I've built in Golang w/ GORM. For some reason, the ID field (which is type uuid.UUID) doesn't show up in the list when trying to create or edit a new object.

    I need access to this field because when Creating a new object via the Admin I will need to manually set a new UUID (since this would normally be generated and set in Go code before the object is created).

    opened by aaronn 3
  • Docker File Enviroment Variables

    Docker File Enviroment Variables

    On Ubuntu 18.04 i set up a PostgresSQL Server. Now i can connect with DBeaver with Host=Localhost, User = Postgres, Password=Test, Port=5432 on Server. I create over DBeaver a new Database jetbridge

    Now i install docker, pull jetadmin/jetbridge, insert in a new file "env"

    DATABASE_ENGINE=postgresql DATABASE_HOST=127.0.0.1 DATABASE_PORT=5432 DATABASE_NAME=jetbridge DATABASE_USER=postgres DATABASE_PASSWORD=Test

    sudo docker run --env-file env jetadmin/jetbridge

    shows me:

    sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not connect to server: Connection refused Is the server running on host "127.0.0.1" and accepting TCP/IP connections on port 5432?

    I test DATABASE_HOST = localhost. Same Exception

    opened by Bastilla123 2
  • Python 3.10 is not compatible due to the import from typing

    Python 3.10 is not compatible due to the import from typing

    This would be "easy"

    Changing from: from collections import OrderedDict, Mapping, Iterable

    To:

    from collections.abc import Mapping, Iterable
    from collections import OrderedDict
    

    ImportError: cannot import name 'Mapping' from 'collections' (/usr/local/lib/python3.10/collections/__init__.py)

    opened by Ronjea 1
  • Support Intercom bubble is broke on the site: Uncaught ReferenceError: Intercom is not defined

    Support Intercom bubble is broke on the site: Uncaught ReferenceError: Intercom is not defined

    VM324:1 Uncaught ReferenceError: Intercom is not defined at :1:7 at gtm.js?id=GTM-WGGWW7N:475:414 at b (gtm.js?id=GTM-WGGWW7N:476:329) at Ee (gtm.js?id=GTM-WGGWW7N:90:261) at e (gtm.js?id=GTM-WGGWW7N:297:118) at gtm.js?id=GTM-WGGWW7N:38:130 at Array. (gtm.js?id=GTM-WGGWW7N:298:475) at Object.execute (gtm.js?id=GTM-WGGWW7N:298:231) at cs (gtm.js?id=GTM-WGGWW7N:300:984) at ls (gtm.js?id=GTM-WGGWW7N:304:7) at Mt (gtm.js?id=GTM-WGGWW7N:320:273) at Pt (gtm.js?id=GTM-WGGWW7N:325:158) at Tt.b.push (gtm.js?id=GTM-WGGWW7N:328:315) at e.sendEvent (main.4018df1630c0f23d336b.js:17:3405788) at e.sendSimpleEvent (main.4018df1630c0f23d336b.js:17:804265) at e.onItemClicked (main.4018df1630c0f23d336b.js:17:12787265) at Object.handleEvent (main.4018df1630c0f23d336b.js:17:12792445) at Object.handleEvent (main.4018df1630c0f23d336b.js:17:3206260) at Object.handleEvent (main.4018df1630c0f23d336b.js:17:3228203) at _r (main.4018df1630c0f23d336b.js:17:3176291) at main.4018df1630c0f23d336b.js:17:3182384 at HTMLAnchorElement. (main.4018df1630c0f23d336b.js:17:6806152) at HTMLAnchorElement.l (main.4018df1630c0f23d336b.js:17:11870197) at t.invokeTask (polyfills.7fa02b484e21ce7e800d.js:1:9977) at Object.onInvokeTask (main.4018df1630c0f23d336b.js:17:3144856) at t.invokeTask (polyfills.7fa02b484e21ce7e800d.js:1:9898) at e.runTask (polyfills.7fa02b484e21ce7e800d.js:1:5159) at e.invokeTask [as invoke] (polyfills.7fa02b484e21ce7e800d.js:1:11060) at b (polyfills.7fa02b484e21ce7e800d.js:1:24055) at HTMLAnchorElement.m (polyfills.7fa02b484e21ce7e800d.js:1:24285) (anonymous) @ VM324:1 (anonymous) @ gtm.js?id=GTM-WGGWW7N:475 b @ gtm.js?id=GTM-WGGWW7N:476 Ee @ gtm.js?id=GTM-WGGWW7N:90 e @ gtm.js?id=GTM-WGGWW7N:297 (anonymous) @ gtm.js?id=GTM-WGGWW7N:38 (anonymous) @ gtm.js?id=GTM-WGGWW7N:298 (anonymous) @ gtm.js?id=GTM-WGGWW7N:298 cs @ gtm.js?id=GTM-WGGWW7N:300 ls @ gtm.js?id=GTM-WGGWW7N:304 Mt @ gtm.js?id=GTM-WGGWW7N:320 Pt @ gtm.js?id=GTM-WGGWW7N:325 Tt.b.push @ gtm.js?id=GTM-WGGWW7N:328 e.sendEvent @ main.4018df1630c0f23d336b.js:17 e.sendSimpleEvent @ main.4018df1630c0f23d336b.js:17 e.onItemClicked @ main.4018df1630c0f23d336b.js:17 (anonymous) @ main.4018df1630c0f23d336b.js:17 handleEvent @ main.4018df1630c0f23d336b.js:17 handleEvent @ main.4018df1630c0f23d336b.js:17 _r @ main.4018df1630c0f23d336b.js:17 (anonymous) @ main.4018df1630c0f23d336b.js:17 (anonymous) @ main.4018df1630c0f23d336b.js:17 l @ main.4018df1630c0f23d336b.js:17 t.invokeTask @ polyfills.7fa02b484e21ce7e800d.js:1 onInvokeTask @ main.4018df1630c0f23d336b.js:17 t.invokeTask @ polyfills.7fa02b484e21ce7e800d.js:1 e.runTask @ polyfills.7fa02b484e21ce7e800d.js:1 e.invokeTask @ polyfills.7fa02b484e21ce7e800d.js:1 b @ polyfills.7fa02b484e21ce7e800d.js:1 m @ polyfills.7fa02b484e21ce7e800d.js:1 VM8:1 POST https://o229361.ingest.sentry.io/api/1304739/store/?sentry_key=1888fd140d444c10b0661c6dc0ea6937&sentry_version=7 403

    opened by coopernewby 1
  • Can't finish the setup (python)

    Can't finish the setup (python)

    Following the guide here: https://docs.jetadmin.io/user-guide/integrations/postgresql-integration/python-app-installation

    After launching jet_bridge for the first time and visiting the registration URL I end up here:

    http://localhost:8888/api/register/?token=XXXXX

    image

    Can't do anything from there, http://localhost:8888/api/ shows the django server settings:

    image

    opened by vineus 1
  • Stop interpolating env variables in settings

    Stop interpolating env variables in settings

    If a value contains a special character, eg % it will be interpreted and result in the following error:

    configparser.InterpolationSyntaxError: '%' must be followed by '%' or '(', found:
    
    opened by vineus 1
  • when connect utf8 database will error charset

    when connect utf8 database will error charset

    connect utf8 server will not correct response, because db.py connect url not set query parmater "?charset=utf8" add this query string to connect url is correct

    like this ` url.append(settings.DATABASE_NAME)

    url.append('?charset=utf8')

    return ''.join(url) `

    opened by dosoos 1
  • F2210 django4.0 patch

    F2210 django4.0 patch

    fix for django 4.0 url file.

    As per Django 4.0 the use of django.conf.urls is deprecated. (https://docs.djangoproject.com/en/3.2/ref/urls/#url)

    In order to support future django versions. This fix should be implemented.

    opened by F2210 0
  • Fix some bug risks and code quality issues

    Fix some bug risks and code quality issues

    Changes:

    • Add missing logging placeholders in packages/jet_bridge_base/jet_bridge_base/utils/backend.py
    • Fixed dangerous mutable default argument in packages/jet_bridge_base/jet_bridge_base/router.py
    • Use AssertionError() instead of assert statements in packages/jet_bridge_base/jet_bridge_base/views/base/generic_api.py and packages/jet_bridge_base/jet_bridge_base/serializers/serializer.py
    • Removed unused imports in packages/jet_bridge_base/jet_bridge_base/filters/boolean_filter.py
    • Removed unnecessary call to len() for checking list emptiness in packages/jet_bridge_base/jet_bridge_base/views/model_description.py, packages/jet_bridge_base/jet_bridge_base/filters/order_by.py, packages/jet_bridge/jet_bridge/__main__.py, packages/jet_django/jet_django/configuration.py, and packages/jet_bridge_base/jet_bridge_base/serializers/reset_order.py

    This PR also adds.deepsource.toml to run static analysis continuously on the repo with DeepSource. Upon enabling DeepSource, static analysis will be run on every PR to detect 500+ types of issues in the changes — including bug risks, anti-patterns, security vulnerabilities, etc.

    To enable DeepSource analysis after merging this PR, please follow these steps:

    1. Sign up on DeepSource with your GitHub account and grant access to this repo.
    2. Activate analysis on this repo here.

    You can also look at the docs for more details. Do let me know if you have any questions!

    — Sanket.

    opened by sanketsaurav 0
  • How to use Custom Relations?

    How to use Custom Relations?

    Hello, I have a model Doctor, having many calendars, and each calendar having many availabilities. Each availability is linked to an appointment.

    I need to create a custom relation to show all appointments of a Doctor in his view page.

    What is next collection, next/previous collection field ?

    Thanks. @f1nality

    opened by zenati 0
  • PostgresSQL DB connection error (supabase)

    PostgresSQL DB connection error (supabase)

    I keep getting the following error trying to hook up the DB to the Supabase postgresSQL db. I have tried both the Supabase and postgresSQL connections. This info has connected to all the other tools I have tried so its a bug. issubclass() arg 2 must be a class or tuple of classes

    opened by coopernewby 2
  • Error when populating SQLite DATE field

    Error when populating SQLite DATE field

    Jetadmin correctly recognises SQLite DATE field as date and offers a calendar as means to fill the field. Yet, when I click the add button I get an error message stating that there is some incompatibility between SQLite DATE field and Python datetime object.

    I solved a problem by adding the {'query': 'DATE', 'operator': 'startswith', 'date_type': fields.DateTimeField}, to the data_types list in jet-bridge/packages/jet_bridge_base/jet_bridge_base/serializers/model_serializer.py

    Can you please patch the package?

    opened by maramaraz 0
  • Errors in jet_bridge when transforming 'headers' and 'query_params'

    Errors in jet_bridge when transforming 'headers' and 'query_params'

    The following two line: headers = dict(map(lambda x: (x['name'], x['value']), headers)) query_params = list(map(lambda x: (x['name'], x['value']), query_params)) Are failing: File "/packages/jet_bridge_base/jet_bridge_base/serializers/proxy_request.py", line 214, in submit headers = dict(map(lambda x: (x['name'], x['value']), headers)) File "/packages/jet_bridge_base/jet_bridge_base/serializers/proxy_request.py", line 214, in <lambda> headers = dict(map(lambda x: (x['name'], x['value']), headers)) TypeError: byte indices must be integers or slices, not str

    opened by boazim 2
  • Fix django 4.0

    Fix django 4.0

    As per Django 4.0 the use of django.conf.urls is deprecated. (https://docs.djangoproject.com/en/3.2/ref/urls/#url).

    In order to support future django versions. This fix should be implemented.

    opened by F2210 0
  • Add a security policy

    Add a security policy

    Hey there!

    I belong to an open source security research community, and a member (@0xamal) has found an issue, but doesn’t know the best way to disclose it.

    If not a hassle, might you kindly add a SECURITY.md file with an email, or another contact method? GitHub recommends this best practice to ensure security issues are responsibly disclosed, and it would serve as a simple instruction for security researchers in the future.

    Thank you for your consideration, and I look forward to hearing from you!

    (cc @huntr-helper)

    opened by zidingz 0
Owner
Jet Admin
Back office totally ready to run your service
Jet Admin
fastapi-admin is a fast admin dashboard based on FastAPI and TortoiseORM with tabler ui, inspired by Django admin.

fastapi-admin is a fast admin dashboard based on FastAPI and TortoiseORM with tabler ui, inspired by Django admin.

fastapi-admin 1.6k Dec 30, 2022
Legacy django jet rebooted , supports only Django 3

Django JET Reboot Rebooting the original project : django-jet. Django Jet is modern template for Django admin interface with improved functionality. W

null 215 Dec 31, 2022
aiohttp admin is generator for admin interface based on aiohttp

aiohttp admin is generator for admin interface based on aiohttp

Mykhailo Havelia 17 Nov 16, 2022
A cool, modern and responsive django admin application based on bootstrap 5

django-baton A cool, modern and responsive django admin application based on bootstrap 5 Documentation: readthedocs Live Demo Now you can try django-b

Otto srl 678 Jan 1, 2023
WordPress look and feel for Django administration panel

Django WP Admin WordPress look and feel for Django administration panel. Features WordPress look and feel New styles for selector, calendar and timepi

Maciej Marczewski 266 Nov 21, 2022
Django application and library for importing and exporting data with admin integration.

django-import-export django-import-export is a Django application and library for importing and exporting data with included admin integration. Featur

null 2.6k Jan 7, 2023
Tornadmin is an admin site generation framework for Tornado web server.

Tornadmin is an admin site generation framework for Tornado web server.

Bharat Chauhan 0 Jan 10, 2022
Firebase Admin Console is a centralized platform for easy viewing and maintenance of Firestore database, the back-end API is a Python Flask app.

Firebase Admin Console is a centralized platform for easy viewing and maintenance of Firestore database, the back-end API is a Python Flask app. A starting template for developers to customize, build, and even deploy the desired admin console for their DB.

Daqi Chen 1 Sep 10, 2022
A Django admin theme using Twitter Bootstrap. It doesn't need any kind of modification on your side, just add it to the installed apps.

django-admin-bootstrapped A Django admin theme using Bootstrap. It doesn't need any kind of modification on your side, just add it to the installed ap

null 1.6k Dec 28, 2022
A Django admin theme using Twitter Bootstrap. It doesn't need any kind of modification on your side, just add it to the installed apps.

django-admin-bootstrapped A Django admin theme using Bootstrap. It doesn't need any kind of modification on your side, just add it to the installed ap

null 1.6k Dec 28, 2022
Drop-in replacement of Django admin comes with lots of goodies, fully extensible with plugin support, pretty UI based on Twitter Bootstrap.

Xadmin Drop-in replacement of Django admin comes with lots of goodies, fully extensible with plugin support, pretty UI based on Twitter Bootstrap. Liv

差沙 4.7k Dec 31, 2022
FastAPI Admin Dashboard based on FastAPI and Tortoise ORM.

FastAPI ADMIN 中文文档 Introduction FastAPI-Admin is a admin dashboard based on fastapi and tortoise-orm. FastAPI-Admin provide crud feature out-of-the-bo

long2ice 1.6k Jan 2, 2023
Drop-in replacement of Django admin comes with lots of goodies, fully extensible with plugin support, pretty UI based on Twitter Bootstrap.

Xadmin Drop-in replacement of Django admin comes with lots of goodies, fully extensible with plugin support, pretty UI based on Twitter Bootstrap. Liv

差沙 4.7k Dec 31, 2022
Django Smuggler is a pluggable application for Django Web Framework that helps you to import/export fixtures via the automatically-generated administration interface.

Django Smuggler Django Smuggler is a pluggable application for Django Web Framework to easily dump/load fixtures via the automatically-generated admin

semente 373 Dec 26, 2022
Real-time monitor and web admin for Celery distributed task queue

Flower Flower is a web based tool for monitoring and administrating Celery clusters. Features Real-time monitoring using Celery Events Task progress a

Mher Movsisyan 5.5k Dec 28, 2022
A jazzy skin for the Django Admin-Interface (official repository).

Django Grappelli A jazzy skin for the Django admin interface. Grappelli is a grid-based alternative/extension to the Django administration interface.

Patrick Kranzlmueller 3.4k Dec 31, 2022
django's default admin interface made customizable. popup windows replaced by modals. :mage: :zap:

django-admin-interface django-admin-interface is a modern responsive flat admin interface customizable by the admin itself. Features Beautiful default

Fabio Caccamo 1.3k Dec 31, 2022
Extendable, adaptable rewrite of django.contrib.admin

django-admin2 One of the most useful parts of django.contrib.admin is the ability to configure various views that touch and alter data. django-admin2

Jazzband 1.2k Dec 29, 2022
Modern theme for Django admin interface

Django Suit Modern theme for Django admin interface. Django Suit is alternative theme/skin/extension for Django administration interface. Project home

Kaspars Sprogis 2.2k Dec 29, 2022