- Replace all docker-compose.yml/docker-compose.monitoring.yml references with compose.yaml/compose.monitoring.yaml (modern Compose Spec naming) - Replace all `docker-compose` CLI commands with `docker compose` (plugin syntax) - Update Dockerfile stage descriptions: node:18-alpine → node:20.11-bookworm-slim, built-in node user → explicit nodeapp:1001 non-root user - Update image version references: postgres:14-alpine → postgres:14.12-alpine3.19, redis:7-alpine → redis:7.2-alpine3.19 - Externalize postgres credentials: hardcoded values → POSTGRES_USER/PASSWORD/DB env vars - Externalize Grafana admin password: hardcoded 'agentidp' → GF_ADMIN_PASSWORD env var - Add Docker Compose Variables section to environment-variables.md (POSTGRES_*, GF_ADMIN_PASSWORD) - Update local-development.md Step 3: cp .env.example .env, document POSTGRES_* purpose - Update quick-start.md: cp .env.example .env, use awk/sed for JWT key injection - Update 07-dev-setup.md: remove 'no .env.example' claim, reference cp .env.example - Update docker-compose.yml key file description in 04-codebase-structure.md - Update monitoring overlay launch commands across all docs (compose.yaml + compose.monitoring.yaml) - Update volume names to kebab-case: postgres_data → postgres-data, redis_data → redis-data - Fix compliance encryption-runbook: docker-compose restart agentidp → docker compose restart app All docs now consistent with compose.yaml in repo root. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
49 lines
2.1 KiB
Markdown
49 lines
2.1 KiB
Markdown
# SentryAgent.ai AgentIdP — DevOps Documentation
|
|
|
|
Operational reference for engineers who deploy, configure, and maintain the AgentIdP infrastructure.
|
|
|
|
## System Overview
|
|
|
|
SentryAgent.ai AgentIdP is a Node.js REST API backed by PostgreSQL and Redis. It runs as a single stateless application process. All state lives in PostgreSQL (durable) and Redis (ephemeral cache and rate limiting).
|
|
|
|
**Stack:**
|
|
- **Runtime**: Node.js 18+ (TypeScript, compiled to JS)
|
|
- **Application**: Express 4.18 on port 3000
|
|
- **Database**: PostgreSQL 14+ (primary data store)
|
|
- **Cache**: Redis 7+ (token revocation, rate limiting, monthly token counters)
|
|
|
|
## Documentation
|
|
|
|
| Document | Audience | Contents |
|
|
|----------|----------|---------|
|
|
| [Architecture](architecture.md) | All engineers | Components, ports, data flow, Redis key patterns |
|
|
| [Environment Variables](environment-variables.md) | All engineers | Every env var — required, optional, format, examples |
|
|
| [Database](database.md) | Backend, DevOps | Schema (26 tables/migrations), how to apply and verify |
|
|
| [Local Development](local-development.md) | All engineers | Docker Compose setup (`compose.yaml`), startup, health checks |
|
|
| [Security](security.md) | All engineers | JWT key generation and rotation, CORS, secret storage |
|
|
| [Operations](operations.md) | DevOps | Startup order, graceful shutdown, log interpretation, troubleshooting |
|
|
| [field-trial.md](field-trial.md) | DevOps engineers, QA | In-house Docker Compose field trial execution playbook |
|
|
|
|
## Quick Reference — Ports
|
|
|
|
| Service | Port |
|
|
|---------|------|
|
|
| AgentIdP app | 3000 |
|
|
| PostgreSQL | 5432 |
|
|
| Redis | 6379 |
|
|
|
|
## Quick Reference — npm Scripts
|
|
|
|
| Script | Purpose |
|
|
|--------|---------|
|
|
| `npm run dev` | Run from TypeScript source (development) |
|
|
| `npm run build` | Compile TypeScript to `dist/` |
|
|
| `npm start` | Run compiled output from `dist/` (production) |
|
|
| `npm run db:migrate` | Apply pending database migrations |
|
|
| `npm test` | Run all tests |
|
|
| `npm run test:unit` | Unit tests only |
|
|
|
|
## Developer Documentation
|
|
|
|
For API usage (registering agents, getting tokens, calling endpoints) — see [`docs/developers/`](../developers/README.md).
|