Skip to content

feat(devex): add a fincore sandbox helper CLI - #308

Merged
tiana-code merged 1 commit into
mainfrom
feat/E-09-fincore-cli
Jun 19, 2026
Merged

feat(devex): add a fincore sandbox helper CLI#308
tiana-code merged 1 commit into
mainfrom
feat/E-09-fincore-cli

Conversation

@tiana-code

Copy link
Copy Markdown
Owner

E-09 DevEx #302 (F-09.1) - the first E-09 slice: a sandbox helper CLI.

What

  • scripts/fincore (POSIX bash, executable): init (scaffold a local .env with the documented non-secret dev defaults, clobber-guarded), status (curl the readiness of ledger:8080 + payments:8081 + web:8082, UP/DOWN, non-zero if any down), run-demo (exec scripts/demo.sh with pass-through args), help / unknown -> usage. set -euo pipefail, all variables quoted, no eval, fixed case dispatch.
  • .github/workflows/shell.yml - a new shellcheck gate over scripts/fincore + scripts/*.sh.

Source-fidelity

  • status covers exactly the services in docker-compose.yml (ledger/payments/web); compliance and decision are not in compose, so they are not invented.
  • init defaults match the compose defaults (POSTGRES_PASSWORD=ledger, GRAFANA_ADMIN_PASSWORD=admin); .env is gitignored, nothing secret is committed.
  • The CLI lives under scripts/ (alongside demo.sh) because bin/ is gitignored (.gitignore:22) - corrected mid-slice from the issue's bin/ wording.

Gate chain

  • code-reviewer: APPROVED, no must-fix (shellcheck-clean by reading - all quoted, safe ROOT_DIR idiom, correct exit codes, ports match compose).
  • security-auditor (opus): PASS - no shell injection (set -euo pipefail + quoting + no eval + fixed dispatch), no SSRF (hardcoded localhost), non-secret dev defaults, CI has no github.event injection and contents:read, no deploy/publish.
  • evaluator: PASS (0.875).
    shellcheck is not installed locally; the new shell.yml CI job is the lint gate. Local smoke: bash -n clean, help/no-arg/unknown verified, exec bit 100755.

Closes #302

Add a small POSIX shell CLI for the sandbox: init scaffolds a local .env
with the documented non-secret dev defaults, status curls the readiness
of the running ledger, payments and web services, and run-demo delegates
to the existing smoke script. A shellcheck workflow lints the shell
entrypoints. The tool lives under scripts (bin is gitignored) and runs
non-root with no new dependencies.

Closes #302
@tiana-code tiana-code added this to the v0.4.0 milestone Jun 19, 2026
@tiana-code
tiana-code merged commit f2b61f0 into main Jun 19, 2026
9 checks passed
@tiana-code
tiana-code deleted the feat/E-09-fincore-cli branch June 19, 2026 17:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

DevEx: fincore CLI (init / status / run-demo)

1 participant