This repository contains the open-source SQL schema and SDKs of Schemamap.io.
Comparison to similar tools:
Need | Solutions |
---|---|
REST API | Postgrest |
GraphQL API | Hasura, Supabase |
Table-based API | 🎉 Schemamap.io 🎉 |
Schemamap.io provides a common SQL and backend interface for your Postgres-based multi-tenant application, regardless of your framework.
Instead of maintaining CSV/Excel imports and exports by hand, generate them using industry-standard patterns via a rule engine.
As your schema evolves (new columns/tables) so do your table-based interfaces, along with import/export SQL scripts.
- CSV
- Google Sheets
- Excel (
.xls
and.xlsx
) (Work in progress) - Salesforce API (Work in progress)
- Schema as a View: To support analysis, schema metadata is collected into a column-wise materialized view.
- Query and analyze your schema with simple SQL queries, get holistic view of anomalies/exceptions to the patterns in your DB.
- Great for onboarding new developers without needing an ER diagram
- Schedule refresh at your convenience by just calling a SQL function:
- periodically, using pg_cron
- after SQL migrations
- from application code
- Security: Robust handling for application Postgres DB roles / RLS
- Principle of least privilege
- Multiple roles with incrementally more privileges
- Schema read access
- Read-only access (to the minimum subset of tables, for exporting data)
- Write access (to the minimum subset of tables, to import data without writing application layer code)
- Give access as much or as little, given your security & threat model.
- Support tenant-scoped roles that guarantee safe access via row-level-security
- TCP Port-Forwarding: Connect your local/Docker Postgres securely for a local-first developer experience.
- No need to setup firewall rules/Ngrok/bastion hosts to try out the feature-set.
- Use with local mock/seed data or with an empty DB.
- Get setup/usage help interactively from the app, while coding along in your favorite SQL client/psql.
Integrate schemamap
seamlessly with language-specific SDKs.
Currently supported:
Watch out for more languages coming soon! Have a request? Open an issue.
- Install direnv and hook into your shell: https://direnv.net/#basic-installation
- Install the Nix package manager: https://github.com/DeterminateSystems/nix-installer#readme
- Run
direnv allow
(will prompt you to install https://devenv.sh/getting-started/#2-install-cachix, from Step 2.) - To make sure the LFS files (db dumps) are present, run:
git lfs pull
process-compose
to bring up the development environment servicesci-test
to run the integration test suite locally (shut downprocess-compose
beforehand)devenv info
to see what packages and scripts are available
We'd love to hear from you! Whether it's a bug report, feature request, or general feedback - feel free to raise an issue.
Security is at the core Schemamap.io.
If you discover any issue regarding security, please disclose the information responsibly by sending an email to security@schemamap.io and not by creating a GitHub issue.
We'll get back to you ASAP and work with you to confirm and plan a fix for the issue.
Please note that we do not currently offer a bug bounty program.
Copyright © 2023-2024 Schemamap.io Kft.
This project is distributed under the MIT License. For more details, refer to the LICENSE file.