Context
ct-cli never manages people or memberships. That boundary stays. But the connector depends on a handful of machine accounts, the members of the Funktionsuser Merkmal (funktionsuser: prod 1993, dev 1789, declared in eqrm/ct-structure's ct.config.ts). Each authenticates with a login token.
These accounts are infrastructure, not people. Today they are created by hand per instance, their permissions drift between prod and dev, and their tokens live wherever someone pasted them. Standing staging up against eqrm-dev (eqrm/churchtools-connector#1469) hit exactly this: every machine user has to be recreated on dev by hand.
Ask
A narrow, opt-in way to declare named machine users, and nothing else:
- the account itself (a synthetic person with a reserved name,
.invalid e-mail, no real person data)
- its membership and group role in
funktionsuser
- its permissions, via that role's grants (already in ct-structure's scope)
- optionally, login-token issue/rotation with the token written to AWS Secrets Manager, never to stdout or state
It must stay impossible to declare a real person. For example: only members of funktionsuser, only with a reserved name prefix, and a hard refusal otherwise. scripts/seed-dev-permission-cohort.ts in ct-structure already shows the dev-only, no-delete, idempotent pattern for synthetic people outside declared state.
Out of scope
Real people, arbitrary memberships, deletes.
Context
ct-cli never manages people or memberships. That boundary stays. But the connector depends on a handful of machine accounts, the members of the Funktionsuser Merkmal (
funktionsuser: prod 1993, dev 1789, declared in eqrm/ct-structure'sct.config.ts). Each authenticates with a login token.These accounts are infrastructure, not people. Today they are created by hand per instance, their permissions drift between prod and dev, and their tokens live wherever someone pasted them. Standing staging up against eqrm-dev (eqrm/churchtools-connector#1469) hit exactly this: every machine user has to be recreated on dev by hand.
Ask
A narrow, opt-in way to declare named machine users, and nothing else:
.invalide-mail, no real person data)funktionsuserIt must stay impossible to declare a real person. For example: only members of
funktionsuser, only with a reserved name prefix, and a hard refusal otherwise.scripts/seed-dev-permission-cohort.tsin ct-structure already shows the dev-only, no-delete, idempotent pattern for synthetic people outside declared state.Out of scope
Real people, arbitrary memberships, deletes.