ICD (/infra) API Parameter Review
Source: services/config_app/src/web/infra.py +
services/config_app/src/model/pModel.py.
Gateway prefix: /config/infra/*.
Pass — Client should send this value in the request.
Internal — Server should derive / default / generate this; client should not send.
Auth-derived — Comes from the JWT (tenant context); never client-controlled.
Mark each field, add notes in the last column, then Print/Save PDF.
/infra/company — Company (tenant) records
GET /infra/company
List companies. DORI_ADMIN sees all; other roles see only their own tenant.
No parameters.
POST /infra/company
Create a company; optionally also create its first DORI_ADMIN user in the same transaction (ICD onboarding flow). Auth: DORI_ADMIN.
DELETE /infra/company/{company_id}
Delete a company. Path param only. Auth: DORI_ADMIN.
/infra/user — Platform-wide user management
GET /infra/user?company_id=
List users across every company; ?company_id= filters to one tenant. Auth: DORI_ADMIN.
POST /infra/user
Create a user under any company. Auth: DORI_ADMIN.
DELETE /infra/user/{user_id}
/infra/credentials — AWS credentials (per company)
GET /infra/credentials?company_id=
Auth: ADMIN. company_id only usable by DORI_ADMIN; tenant admin's is auth-derived.
POST /infra/credentials?company_id=
Upsert. Auth: ADMIN.
/infra/mlc — MLC (the compute node entity)
GET /infra/mlc
List all MLCs with attached configs. No parameters.
POST /infra/mlc
Create an MLC. Auth: DORI_ADMIN.
DELETE /infra/mlc/{mlc_id}
/infra/mlc_config — MLC tuning knobs (platform-level)
GET /infra/mlc_config?mlc_id=&company_id=
List configs; optional filters.
POST /infra/mlc_config
Create. Auth: DORI_ADMIN. Every field optional; server auto-names config-{id} if name omitted.
PATCH /infra/mlc_config/{config_id}
Partial update — every field optional; only send what you want to change.
DELETE /infra/mlc_config/{config_id}
/infra/mlc_config/{id}/companies — Junction: which companies a config applies to
GET /infra/mlc_config/{config_id}/companies
Returns an array of company_id ints.
POST /infra/mlc_config/{config_id}/companies
Assign one or more companies to a config. Auth: DORI_ADMIN.
DELETE /infra/mlc_config/{config_id}/companies/{company_id}
/infra/client — Downstream Dori deployments
GET /infra/client
List clients with attached user ids.
POST /infra/client
Create a client; optional user_id also creates the client_user junction row. Auth: DORI_ADMIN.
DELETE /infra/client/{client_id}
/infra/company_config — Key/value company config
GET /infra/company_config?company_id=
Returns {key: value} map. Auth: tenant.
POST /infra/company_config?company_id=
Upsert key/value pairs. Body is a raw {key: value} dict. Auth: ADMIN.
/infra/service_bundle — Service bundle definitions
GET /infra/service_bundle
List service bundles.
POST /infra/service_bundle
Create a service bundle. Auth: DORI_ADMIN.
DELETE /infra/service_bundle/{bundle_id}
/infra/system_event — Stub (501 by design)
POST /infra/system_event
Pending — see /monitor/system_event/ for the wired version. Returns 501.
No parameters currently.
Generated from services/config_app/src/web/infra.py and
services/config_app/src/model/pModel.py on the
feat/icd-platform-admin-and-mlc-config branch.