Skip to content

jruszo/Datamingle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,386 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository version version License Code style: black

Datamingle

SQL Review and Query Platform

Repository

Fork Attribution

Datamingle is a fork of Archery, and we retain attribution in accordance with the Apache-2.0 license. Original project copyright and license notices are preserved in this repository.

Feature Matrix

Database Query Review Execute Backup Data Dictionary Session Management Account Management Parameter Management Data Archive
MySQL
MsSQL × × × × × ×
Redis × × × × × × ×
PgSQL × × × × × × ×
Oracle × × ×
MongoDB × × × ×
Phoenix × × × × × × ×
ODPS × × × × × × × ×
ClickHouse × × × × × ×
Cassandra × × × × × × ×
Doris × × × × × ×

Quick Start

Live Demo

Public Datamingle demo: coming soon.

Docker

Use the Docker and compose files in this repository (src/docker and src/docker-compose).

Existing local Docker data directories from before the Datamingle rename may still have the application database under the old archery name. Copy that data into the new datamingle database before starting the renamed stack:

scripts/docker/migrate-archery-db-to-datamingle.sh

The script defaults to the local ARM MySQL container, datamingle-mysql. If you are using src/docker-compose/docker-compose.yml, where the MySQL container is named mysql, override the container name:

MYSQL_CONTAINER=mysql scripts/docker/migrate-archery-db-to-datamingle.sh

Local Demo Users

The local ARM compose setup can seed demo users, resource groups, and demo database instances for manual UX testing.

Seeded app users:

  • demo_admin / demo123
  • demo_requester / demo123
  • demo_pm / demo123
  • demo_dba / demo123

See src/docker-compose/LOCAL_DEMO.md for:

  • demo login roles and approval chains
  • demo MySQL/PostgreSQL instance credentials
  • the separate smoke-check command
  • reset and reseed instructions

Manual Installation

Use this repository as the source of truth: https://github.com/jruszo/Datamingle

Authentication Modes

Datamingle supports exactly two deployment-level authentication modes:

  • builtin: local Datamingle username/password auth
  • workos: WorkOS-only login for the deployment

This is controlled with the AUTH_MODE environment variable in .env. A deployment uses one mode at a time.

Builtin Auth

Use local Datamingle accounts and passwords:

AUTH_MODE=builtin

Behavior:

  • The SPA login page shows the local username/password form.
  • The legacy server-rendered /login/ page also shows the local login form.
  • /authenticate/, /signup/, and /api/auth/token/ stay enabled.

WorkOS Auth

Use WorkOS as the only sign-in method for the deployment:

AUTH_MODE=workos
WORKOS_API_KEY=sk_test_or_live_xxx
WORKOS_CLIENT_ID=client_xxx
WORKOS_ORGANIZATION_ID=org_xxx
WORKOS_REDIRECT_URI=https://tenant.datamingle.dev/api/auth/workos/callback/
WORKOS_LOGOUT_REDIRECT_URI=https://tenant.datamingle.dev/login
WORKOS_STAFF_EMAILS=ops@datamingle.dev,admin@datamingle.dev
WORKOS_SUPERUSER_EMAILS=admin@datamingle.dev

Behavior:

  • The SPA login page shows only the WorkOS button.
  • The legacy server-rendered /login/ page also shows only the WorkOS button.
  • Local password login is disabled.
  • /authenticate/, /signup/, and /api/auth/token/ reject password-based login attempts.
  • Datamingle still keeps its own local Users, groups, and resource-group assignments after login.

WorkOS setup assumptions in this repo:

  • One Datamingle deployment maps to one tenant.
  • That deployment uses one fixed WorkOS organization via WORKOS_ORGANIZATION_ID.
  • Users are provisioned just-in-time on first successful WorkOS login.
  • The local Datamingle account uses the WorkOS email as the username.
  • WORKOS_STAFF_EMAILS and WORKOS_SUPERUSER_EMAILS are bootstrap allowlists for initial elevated access.

WorkOS Setup Steps

  1. Create or choose the tenant organization in your WorkOS account.
  2. Configure the Datamingle application redirect URI in WorkOS: https://<tenant-host>/api/auth/workos/callback/
  3. Configure the logout return URL in WorkOS: https://<tenant-host>/login
  4. Set AUTH_MODE=workos and the required WORKOS_* values in .env.
  5. Rebuild the app container so the workos Python dependency is installed:
docker-compose -f src/docker-compose/docker-compose.local-arm.yml up -d --build datamingle
  1. Restart the deployment and open /login/.
  2. Sign in through WorkOS. A local Datamingle user will be created automatically on first login.

Notes

  • AUTH_MODE is deployment-wide, not configurable per request or per organization inside one running instance.
  • Switching an existing deployment from builtin to workos disables local password login immediately after restart.
  • WorkOS mode still issues Datamingle JWTs to the SPA after the WorkOS callback completes.

Run Tests

python manage.py test -v 3

Dependencies

Framework

Frontend Components

Backend

Functional Dependencies

Contributing

You can check the roadmap and dependency list in this repository, claim related issues, or submit a PR directly. Thanks for contributing to Datamingle.

Contributions include but are not limited to:

  • Wiki documentation (if enabled)
  • Bug fixes
  • New features
  • Code optimization
  • Better test coverage

Feedback

Acknowledgements

  • Archery Datamingle is forked from Archery.
  • archer Archery is based on secondary development of archer.
  • goInception A MySQL operations tool integrating review, execution, backup, and rollback SQL generation.
  • JetBrains Open Source for providing free IDE licenses to this project.

About

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors