- Rust 49.2%
- Shell 36.9%
- Dockerfile 12.8%
- Just 1.1%
The secret exists only on the monorepo; without the guard the push step fails the pipeline on every main build. The build itself stays verified by ci-build; adding the secret re-arms the push with no workflow change. |
||
|---|---|---|
| .github/workflows | ||
| .sqlx | ||
| ci | ||
| crates/economy | ||
| .dockerignore | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| clippy.toml | ||
| deny.toml | ||
| Dockerfile | ||
| justfile | ||
| justfile.ci | ||
| README.md | ||
| rust-toolchain.toml | ||
| rustfmt.toml | ||
alysia-economy
The economy service of the Alysia platform, extracted from the
Alysia monorepo (services/economy/).
Owns the accounts table and serves POST /v1/accounts/{uuid}
(idempotent creation at balance 0), plus the common surface every Alysia
service exposes (healthz, ping, gRPC Pinger + grpc.health.v1). The
durable JetStream stream (ALYSIA_ECONOMY) is ensured at boot; the socle
taxonomy has no event for an account creation (BalanceChanged covers
credits and debits), so the route publishes nothing.
Layout
| Path | Role |
|---|---|
crates/economy/ |
The service crate (lib + binary + integration tests) |
crates/economy/migrations/ |
accounts schema, run at startup |
.sqlx/ |
Committed offline query metadata, scoped to this service's 3 queries |
Dockerfile |
Single-binary image (alysia/economy), built from this repo |
justfile.ci + ci/ |
Vendored from alysia-ci-templates at TEMPLATE_REV (see .github/workflows/ci.yml) — never patch locally |
Dependencies
alysia-* crates come from the versioned libs release train as exact-tag
git dependencies — never a branch, never a vendored copy. All alysia-*
deps move together on a single tag (lockstep releases, currently
libs-v0.1.0):
alysia-service = { git = "https://git.zeto.fr/alysia/alysia-libs.git", tag = "libs-v0.1.0" }
Development
just ci-lint # fmt + clippy + machete + deny
just --set test_args "" ci-test # full suite (needs a container runtime for the integration tests)
just --set image "alysia/economy" ci-build # local image build (tag `local`); CI pushes `alysia/economy:<sha>` on main
The integration tests need Postgres/NATS containers (testcontainers):
DOCKER_HOST must point at a Docker-compatible socket.
Image push
ci-build produces alysia/economy:local. CI pushes
git.zeto.fr/alysia/alysia-economy/economy:<sha> on main/tags — but only
once a REGISTRY_TOKEN secret exists on this repo (it does not yet; the
push step skips loudly until then). No image is ever pushed by hand.