2.0 KiB
2.0 KiB
C0PY — AGENTS.md
Repo-konventioner
- Package manager: pnpm (frozen-lockfile)
- Framework: Next.js (apps/web), Fastify (apps/api)
- TypeScript: strict mode, bundler module resolution
- CI: Gitea Actions —
.gitea/workflows/ci.yml - Deploy: Coolify via
.gitea/workflows/deploy.yml - Secrets: Infisical (
vault.siax.io) — ALDRIG i repo - Testing: vitest (apps/api, packages/*)
- Lint: eslint flat config
- OTel: not yet wired — add bootstrap at apps/api/src/index.ts entry when available
- Tenant: bound to session via CL0UD, NEVER from client input
Drift (Coolify)
- App UUID:
wvmn6eg40jofssvm3nigmav6, server6 - Postgres UUID:
qhucpjjpv3mx9jupqkbyf5uh, server6 - Image:
wvmn6eg40jofssvm3nigmav6:latest(built on server6 from /tmp/c0py-build) - Deploy:
cd /data/coolify/applications/wvmn6eg40jofssvm3nigmav6 && docker compose up -d - DNS:
c0py.siax.io→ 65.109.19.146 (Cloudflare A, proxied) - Coolify API: POST
/api/v1/applications/dockerfile(NOT/api/v1/applications) - Health check:
GET /health→ 200 (wget-based, Fastify HTTP)
Kontrakt
- API-kontrakt:
contracts/openapi.yaml - Schema-versionshantering: semantisk versionering i
packages/types - Digital Twin Spec:
docs/spec/DIGITAL-TWIN-SPEC.md(fullständig specifikation för webbplats-analys och identisk reproduktion)
Fällor
NEXT_PUBLIC_*ska ALDRI innehålla hemligheter- Alla writes till AUD0/ST0RE via klientskikt, aldrig direkt
- Crawling ska vara throttle-ad och respect robots.txt
- Docker COPY over build stages bryter pnpm-symlinks — kör
pnpm install --frozen-lockfilei runtime-staget, lägg till tsx-symlink efteråt tsxär devDependency i@siax/c0py-api— pnpm länkar workspace-devDeps INTE till rot-nivå- Auth: preHandler hook kollar
Authorization: Bearer *-header, returnerar 401 annars - GitHub push: använd
gh auth login(keyring), INTE inbäddade tokens i URLs