endpoints field in an Agent Passport lists all HTTP endpoints where the AI system is reachable. This is required for complior eval to know where to send conformity probes, and for Art.13 (instructions for use) to document the system’s interfaces.
Why endpoints matter: EU AI Act Art.13 requires clear documentation of the AI system’s interfaces. Art.15 requires robustness testing of the actual deployed system. Without endpoints,
complior eval has no target.Automatic detection
Duringcomplior init (or complior agent init), the endpoint discovery pipeline scans 5 sources in priority order:
| Priority | Source | Pattern | Example |
|---|---|---|---|
| 1 | .env / .env.example | PORT=4000 | Port from environment config |
| 2 | Dockerfile | EXPOSE 3000 | Port from container config |
| 3 | docker-compose.yml | ports: ["8080:8080"] | Port from orchestration config |
| 4 | Source code | { port: 3000 } | Port from Hono/Express/Fastify config |
| 5 | Source code | .listen(8080) | Port from Node.js listen() call |
.get(), .post(), etc.) and builds full endpoint URLs:
Detection examples
From .env
From .env
.env
http://localhost:4000 + detected routes.From Dockerfile
From Dockerfile
Dockerfile
http://localhost:3000 + detected routes.From docker-compose.yml
From docker-compose.yml
docker-compose.yml
http://localhost:8080 + detected routes.From source code
From source code
src/server.ts
http://localhost:4000/api/chat, http://localhost:4000/health.Manual configuration
If automatic detection doesn’t find your endpoints (e.g., the port is injected at deploy time, or the AI system is behind a reverse proxy), edit the passport JSON directly:endpoints field and add your URLs:
.complior/agents/my-agent-manifest.json
Manual endpoints are preserved across
complior init runs. Use --force only if you want to regenerate from scratch.Using endpoints with eval
Once endpoints are in the passport,complior eval can auto-resolve the target:
--agent is specified, the eval results are saved to that passport’s compliance.eval block.
When endpoints are not detected
If no port is found from any source, the passport’sendpoints field is omitted. You’ll see this in complior agent show:
| Reason | Fix |
|---|---|
| Port injected via CI/CD | Add PORT=<value> to .env.example |
| Port in Kubernetes config | Add a Dockerfile with EXPOSE |
| Serverless deployment | Add the function URL manually to the passport |
| Monorepo with shared config | Run complior init from the service subdirectory |
Data Pipeline
How endpoints fit into the 11-stage passport data fill pipeline.
Run Eval
Test your AI system’s behavior at the detected endpoints.