feat(run): run the complete local stack with orcha run - #95
Merged
Conversation
slint
force-pushed
the
sqlite-local-run
branch
from
August 12, 2026 08:58
18e97d2 to
547a7f2
Compare
Getting started meant installing Docker, bringing up PostgreSQL and Temporal, then running the API and worker in separate shells. SQLite covers what the app does locally, so the default database is now a file and one command owns the whole stack, tearing it down as a unit when any process exits. PostgreSQL stays the production default. The PG* settings are removed rather than aliased to the new DB_* ones, so the Helm chart sets DB_* instead.
Pointing a local InvenioRDM at Orcha meant generating an RSA pair, dropping the private half in the instance folder and hand-writing the public half into tenants.json. Tenants mean nothing on a development machine, so DEV_MODE skips verification and pins every request to one named dev. That keeps a real tenant id on the context, so the column stays non-nullable and the scoping checks still run. AUTH_DISABLED is separate and wins when set, so the local stack can still exercise real tenant tokens against a registered key.
slint
force-pushed
the
sqlite-local-run
branch
from
August 12, 2026 12:25
547a7f2 to
c5dddd5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
orcha runapplies migrations, starts a Temporal dev server, waits for it, then starts the API (with hot reload) and worker as prefixed subprocesses, tearing everything down if any of them exits.--resetclearsorcha.dbandtemporal.dbfirst; a normal shutdown leaves both files in place.orcha run serverandorcha run workersstill start the individual processes. Requires thetemporalCLI.DB_URLoverrides everything; otherwiseDB_DIALECTpicks betweenDB_PATH(sqlite) andDB_USER/DB_PASSWORD/DB_HOST/DB_PORT/DB_NAME(postgresql).PGUSER/PGPASSWORD/PGHOST/PGPORT/PGDATABASEare removed with no aliases; the Helm chart'sdatabaseEnvnow setsDB_DIALECT=postgresqland theDB_*vars instead. The existing Alembic history also runs on SQLite (batch mode in the465d6f3db028migration); automated migration coverage stays PostgreSQL-only.orcha runalso setsDEV_MODE, which skips token verification and serves every request as thedevtenant. A real tenant id stays on the request context, so the column stays non-nullable and the scoping checks still run.AUTH_DISABLEDis now unset by default and gets automatically set byDEV_MODE; it can still be set explicitly though, soAUTH_DISABLED=0will require real tenant tokens against a registered key locally.orcha tenantsgroup:addregisters a tenant's public key (--kid,--name,--force),listprints tenants with their key ids, andtokensigns a token from a private key (--workflow-id,--expires-in).