Alysia social service
- Rust 46.5%
- Shell 36.8%
- Dockerfile 13.6%
- Just 3.1%
Standalone repo for services/social at monorepo f4841ad: virtual workspace, byte-identical crate, scoped .sqlx (friends queries only), git deps on alysia-libs libs-v0.1.0, narrowed deny.toml, vendored CI at tpl-v0.1.1, single-binary Dockerfile (alysia/social). |
||
|---|---|---|
| .github/workflows | ||
| .sqlx | ||
| ci | ||
| services/social | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| clippy.toml | ||
| deny.toml | ||
| Dockerfile | ||
| justfile | ||
| justfile.ci | ||
| README.md | ||
| rust-toolchain.toml | ||
| rustfmt.toml | ||
alysia-social
The social service — friends, parties, chat — extracted from the
alysia monorepo (services/social
at f4841ad5f308d0a3c997c863822b0b893fb1267c, moved byte-identical).
Today: a quasi-stub owning the friends table and serving
POST /v1/friends (idempotent friendship creation) plus the common
surface every Alysia service exposes (healthz, ping, gRPC Pinger +
grpc.health.v1). The service emits no event — Core NATS only, no
durable stream of its own.
Layout
| Path | Role |
|---|---|
services/social/ |
The service crate: src/ (router, friendship route, binary), migrations/ (friends schema), tests/ (container-backed integration) |
.sqlx/ |
Scoped offline query metadata: the two friends queries only (regenerate with just sqlx-prepare) |
Dockerfile |
Single-binary image (alysia/social), adapted from the monorepo's infra/services/Dockerfile |
deny.toml |
cargo-deny allow list narrowed to this workspace's graph (no Pumpkin/Cedar chains) |
justfile |
Consumer wrapper: import "justfile.ci" plus sqlx-prepare |
justfile.ci, ci/ |
Vendored from alysia-ci-templates at TEMPLATE_REV — never patched locally |
Commands
just ci-lint # fmt + clippy (-D warnings) + machete + deny
just --set test_args "" ci-test # full test suite (container-backed, needs podman)
just --set image alysia/social ci-build # local image alysia/social:local
Never push an image by hand: alysia/social:<sha> ships only through CI
(main and tags). The shared crates (alysia-proto, alysia-service,
alysia-test) resolve as exact git deps on the versioned
alysia-libs tag libs-v0.1.0 —
no path deps across repos, no vendored copies.
Vendoring
- Template updates: re-vendor
justfile.ci+ci/at the new tag, bumpTEMPLATE_REVin.github/workflows/ci.yml(ci-freshnessenforces the match). - Libs updates: bump the
tagon the threealysia-*git deps inservices/social/Cargo.toml, refreshCargo.lock, re-run the gate.