A schema-driven application engine for building multi-tenant REST APIs with dynamic data models, storage abstraction, and pluggable backend integrations.
Project description
apibean-engine
apibean-engine is a schema-driven application framework for building modern, multi-tenant business applications.
It combines dynamic schema management, database abstraction, authentication, authorization, and REST API generation into a single, integrated package, allowing developers to rapidly build metadata-driven applications without assembling multiple frameworks.
The project is designed with a modular architecture. While the current release provides an all-in-one developer experience, major components such as the REST API layer and notebook integration are intended to evolve into standalone packages within the apibean ecosystem.
Features
Schema-Driven Applications
Define application models using JSON Schema instead of handwritten ORM models.
- Dynamic schema definition
- Runtime schema evolution
- Metadata-driven application design
- JSON object storage
Database Abstraction
Access multiple storage technologies through a unified programming model.
Supported and planned backends include:
- PostgreSQL
- MySQL
- Redis
- MinIO
- OpenSearch
- TimescaleDB
The storage layer is designed to be extensible through backend adapters.
Automatic REST APIs
Build RESTful APIs with minimal boilerplate.
Current integration is based on FastAPI, providing:
- CRUD endpoints
- Authentication
- Authorization
- Request validation
- OpenAPI documentation
- Dependency Injection
The REST layer is currently included in apibean-engine for simplicity and is planned to become a dedicated package in the future.
Authentication & Authorization
Built-in security components include:
- User authentication
- Role-Based Access Control (RBAC)
- Permission management
- Resource-level authorization
- Extensible authentication providers
Multi-Tenant Ready
The framework is designed for SaaS and enterprise applications.
Capabilities include:
- Organization management
- Tenant-aware data access
- Configurable isolation strategies
- Tenant-specific schemas and resources
Advanced multi-tenant features will be provided by the future apibean-tenants package.
Extensible Plugin Architecture
Most framework capabilities are implemented through pluggable components.
Examples include:
- Database adapters
- Storage providers
- Search engines
- Time-series backends
- Authentication providers
- API extensions
Architecture
apibean-engine
┌─────────────────────────────────────────────┐
│ │
│ Schema Management │
│ Metadata Runtime │
│ Storage Adapters │
│ Authentication │
│ Authorization │
│ REST API (FastAPI) │
│ Dependency Injection │
│ │
└─────────────────────────────────────────────┘
│
┌──────────┼──────────┐
▼ ▼ ▼
PostgreSQL Redis MinIO
│
▼
OpenSearch
│
▼
TimescaleDB
The internal architecture is modular, enabling individual components to be extracted into dedicated packages as the ecosystem grows.
Design Principles
- Schema-first development
- Metadata-driven applications
- Convention with explicit customization
- Pluggable backend architecture
- Multi-tenant by design
- Framework-independent domain logic
- Production-ready defaults
Future Ecosystem
As the project evolves, the framework will be organized into dedicated packages:
- apibean-engine — Core runtime and application framework
- apibean-rest — REST API integration
- apibean-client — Python API client
- apibean-tenants — Advanced multi-tenant management
- apibean-jupyter — Jupyter Server integration
- apibean-notebook — Interactive notebook utilities
- apibean-base — Shared utilities and common abstractions
Applications built today on apibean-engine will remain compatible as these components are gradually separated.
Installation
pip install apibean-engine
Vision
apibean-engine aims to provide a productive foundation for building metadata-driven applications. By combining schema management, storage abstraction, authentication, and REST APIs into a cohesive framework, it enables developers to focus on business logic rather than infrastructure.
The long-term vision is to grow into a modular ecosystem where individual capabilities can be adopted independently while maintaining a consistent developer experience.
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file apibean_engine-0.1.0a1.tar.gz.
File metadata
- Download URL: apibean_engine-0.1.0a1.tar.gz
- Upload date:
- Size: 61.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f4ff12bcdeb2a2fc468b4305d2d3e136b7c9bb47d581dcf0190333ec68fa321
|
|
| MD5 |
c10c3ac0df6c2c0df9a93052c4a46869
|
|
| BLAKE2b-256 |
4183b145f1db8f90667301bd4c7297494a69b02d80c26705caf7fdac4146dae5
|
File details
Details for the file apibean_engine-0.1.0a1-py3-none-any.whl.
File metadata
- Download URL: apibean_engine-0.1.0a1-py3-none-any.whl
- Upload date:
- Size: 105.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b741c2cb44b8ae1d9eed91d088ee1ca2caddf1e33c08748f323cd32c2144e55d
|
|
| MD5 |
22590a96ecdcc2ebada8e5b8eb76b2c6
|
|
| BLAKE2b-256 |
1569893c3f9feb6de2de5ba5336e63bdbaf3e40900f3e3d5aff532e475875a49
|