đ¤ Developer Setup
Prerequisites
Section titled âPrerequisitesâBefore you begin, ensure you have the following tools installed:
Install slangroom-exec
Section titled âInstall slangroom-execâDownload the appropriate slangroom-exec binary for your OS from the releases page.
Add slangroom-exec to PATH and make it executable:
wget https://github.com/dyne/slangroom-exec/releases/latest/download/slangroom-exec-Linux-x86_64 -O slangroom-execchmod +x slangroom-execsudo cp slangroom-exec /usr/local/bin/Install Pre-commit
Section titled âInstall Pre-commitâFor most Linux distrubution, just do:
sudo apt install pre-commitInstall slangroom-exec
Section titled âInstall slangroom-execâSetup Workspace
Section titled âSetup WorkspaceâClone the repository
Section titled âClone the repositoryâgit clone https://github.com/ForkbombEu/credimiInstall dependencies
Section titled âInstall dependenciesâcd credimimise trustmake credimiEdit your .env file
Section titled âEdit your .env fileâCopy .env.example to .env
cp ./webapp/.env.example ./webapp/.envThen edit the .env file, particularly:
- set the absolute path in ROOT_DIR
- Get a token from https://www.certification.openid.net and add it in TOKEN
Copy ./webapp/env.example to
Start Development Server
Section titled âStart Development Serverâmake dev[!TIP] Use
make helpto see all the commands available.
Temporal Visibility Search Attributes
Section titled âTemporal Visibility Search AttributesâPipeline listings rely on a Temporal visibility search attribute named PipelineIdentifier (type Keyword).
Register it once per Temporal cluster:
temporal operator search-attributes create --name PipelineIdentifier --type KeywordIf the attribute is added after workflows already exist, trigger a Temporal visibility reindex to backfill historical data (see Temporal admin tooling docs for your deployment).
Mobile Runner Semaphore Ops (Internal)
Section titled âMobile Runner Semaphore Ops (Internal)âDefaults and knobs
Section titled âDefaults and knobsâ- Default acquire wait timeout: 45m.
- Override timeout:
MOBILE_RUNNER_SEMAPHORE_WAIT_TIMEOUT=30m(or any validtime.ParseDurationvalue). - Disable semaphore (no-op acquire/release):
MOBILE_RUNNER_SEMAPHORE_DISABLED=1. - Internal Temporal API auth key:
CREDIMI_INTERNAL_ADMIN_KEY=<plaintext key>(required for internal workflow HTTP calls).
Internal admin API key rollout
Section titled âInternal admin API key rolloutâ- Run DB migrations so
api_keyssupportskey_type,superuser,revoked,expires_at. - Provision an internal admin key (hash stored in DB, plaintext returned once).
- Set
CREDIMI_INTERNAL_ADMIN_KEYin backend and worker runtime secrets. - Deploy backend/workers with middleware + internal HTTP activity enabled.
- Smoke-check one authenticated user route and one internal Temporal route.
Emergency procedures
Section titled âEmergency proceduresâ- Semaphore workflows live in the Temporal
defaultnamespace with IDs:mobile-runner-semaphore/<runner_id>. - Query current state via Temporal UI (
GetState) orGET /api/mobile-runner/semaphore?runner_identifier=.... - To unstick a runner, terminate the semaphore workflow in Temporal; it will be recreated on the next acquire.