go-admin E-Sign Example
Backend-first flagship e-sign scaffold wired through quickstart.
Command Reference
All commands map directly to examples/esign/taskfile.
Architecture Guides
../../docs/GUIDES_ESIGN_ARCHITECTURE.md
../../docs/GUIDE_TRANSACTION_OUTBOX.md
dev:serve
Build shared client assets and run the e-sign example server.
cd examples/esign
./taskfile dev:serve
dev:test
Run backend tests for the e-sign example package.
cd examples/esign
./taskfile dev:test
dev:cover
Run tests with coverage output.
cd examples/esign
./taskfile dev:cover
release:verify
Run backend release-gate validation.
cd examples/esign
./taskfile release:verify
smoke:e2e
Run local smoke flow (upload pdf, create doc+agreement, send, complete signer flow).
cd examples/esign
./taskfile smoke:e2e
Optional smoke overrides:
BASE_URL=http://localhost:8082 \
TENANT_ID=tenant-smoke \
ORG_ID=org-smoke \
ADMIN_IDENTIFIER=admin@example.com \
ADMIN_PASSWORD=admin.pwd \
./taskfile smoke:e2e
Configuration
The e-sign example uses typed runtime config from examples/esign/config:
- Base config file:
examples/esign/config/app.json
- Environment overrides:
APP_* with __ nesting delimiter
Examples:
APP_APP__ENV=development
APP_SERVER__ADDRESS=:8082
APP_FEATURES__ESIGN_GOOGLE=true
APP_RUNTIME__PROFILE=staging
APP_PUBLIC__BASE_URL=https://esign.example.com
Legacy ESIGN_* alias overrides are removed.
Key APP_* Overrides
| Key |
Default |
APP_APP__ENV |
development |
APP_SERVER__ADDRESS |
:8082 |
APP_ADMIN__PUBLIC_API |
true |
APP_ADMIN__API_VERSION |
v1 |
APP_FEATURES__ESIGN |
true |
APP_FEATURES__ESIGN_GOOGLE |
false |
APP_FEATURES__ACTIVITY |
true |
APP_RUNTIME__PROFILE |
development |
APP_RUNTIME__STARTUP_POLICY |
enforce |
APP_RUNTIME__STRICT_STARTUP |
false |
APP_EMAIL__TRANSPORT |
deterministic |
APP_SIGNER__UPLOAD_TTL_SECONDS |
300 |
APP_SIGNER__UPLOAD_SIGNING_KEY |
(empty) |
APP_SIGNER__PROFILE_MODE |
hybrid |
APP_PUBLIC__BASE_URL |
http://localhost:8082 |
APP_DATABASES__ESIGN_DSN |
(empty) |
APP_DATABASES__CONTENT_DSN |
(empty) |
Demo Login Credentials
By default:
identifier: admin@example.com
password: admin.pwd
Override using:
APP_AUTH__ADMIN_EMAIL
APP_AUTH__ADMIN_PASSWORD
APP_AUTH__ADMIN_ID
APP_AUTH__ADMIN_ROLE
APP_AUTH__SIGNING_KEY
APP_AUTH__CONTEXT_KEY
Google Integration Keys
When APP_FEATURES__ESIGN_GOOGLE=true, configure at least:
APP_GOOGLE__PROVIDER_MODE (real or deterministic)
APP_GOOGLE__CLIENT_ID
APP_GOOGLE__CLIENT_SECRET
APP_GOOGLE__OAUTH_REDIRECT_URI
APP_SERVICES__ENCRYPTION_KEY
APP_GOOGLE__CREDENTIAL_ACTIVE_KEY
Generate a credential key (production):
openssl rand -base64 32
Set it:
export APP_GOOGLE__CREDENTIAL_ACTIVE_KEY="<generated-value>"
dev:serve fails fast unless these are set:
APP_SERVICES__ENCRYPTION_KEY
APP_GOOGLE__OAUTH_REDIRECT_URI
Web Entrypoint And Auth Flow
http://localhost:8082/ redirects to /admin.
http://localhost:8082/admin redirects unauthenticated users to /admin/login.
http://localhost:8082/admin/esign renders the e-sign landing page.
- Public signer routes remain outside admin auth, for example
http://localhost:8082/api/v1/esign/signing/session/:token.
Framework Env
Framework-level ADMIN_*/debug switches still apply to go-admin runtime behavior.
Canonical reference: ../../ENVS_REF.md.