Team setup

Company administration

Company administrators connect verified human identities, exact projects and device approvals. Start in Access and check which instance owns the change. Project administration, company administration, Git access and model disclosure are separate authorities.

This guide describes current source on main, including opt-in company workflows. Use the selected package's inventory and the running service's capabilities to establish its exact contract. The Mac onboarding guide records native candidate limits; deployment and provider RBAC must be validated for the installation you operate.

Users, projects and devices

Access includes Users, Projects, Devices and Company alongside memberships and service tokens. Company administration requires global system_admin; a project administrator is not automatically a company administrator. An enrolled OIDC human can inspect their own Devices/Agent access without administration inventory. Browser mutations require CSRF protection and a writable service.

  • Register users with the configured OIDC issuer and a verified stable subject, then assign project memberships. Email alone never identifies or merges an account. Effective access includes direct and configured group grants.
  • Disabling a Codifix user fences sessions and enrolled devices; it does not disable their external identity-provider account.
  • Projects have append-only reviewed manifests. An edit binds its current revision; a conflicting edit requires fresh review. Pinned tool metadata does not install software or authorize disclosure.
  • Devices can be revoked independently. New enrollment requires an actual OIDC human browser session, not an installation's local-owner token.

Coordinate an owner grant

Local controls administer the current instance. The Company view coordinates grants through explicitly configured owner delegates. Choose the enrolled owner, enter the exact project UUID and verified user subject, review the role and revisions, then confirm. Owners enforce their own exact-project ceilings and reject stale revisions or another issuer. Catalog entries do not create access in another area's database. Trust remains remote expertise only.

An interrupted grant retains its operation ID. Retry the exact request or reconcile its durable operation; reconciliation checks the owner before retrying an absent effect. History is not current access. The separately timestamped owner result shows direct and group roles: removing a direct grant does not remove group access. Delegate credentials and transport addresses remain server-side.

Enable selective device delivery

Device delivery uses separate delegates from membership management. Each non-Trust owner explicitly configures company_delivery_delegations with company, owner, area, shared issuer, dedicated service principal/token, policy revision and an exact project allowlist. The delivery-delegate provisioner issues its configured credential once after protected audit commit; it cannot recover a lost secret or restore revoked authority. Normal roles do not include the custom project_scoped_delivery permission.

The company registry opts in with delivery_token_env and delivery_policy_revision for each owner. Keep these separate from membership management's token_env. Both credentials remain server-side. Existing registries without the delivery pair retain legacy behavior rather than silently enabling laptop delivery. Trust cannot opt into offline delivery.

Device approval reviews exact owner/area/project scope, manifest hashes, expiry, offline-copy consent and tools/output destinations. Curated contribution consent and assistant disclosure each need their own review. Current human permissions continue limiting an enrolled device; increased human access does not silently expand it. Revocation stops new transfers but cannot recall offline copies.

Optional Authentik management

The server-only adapter is disabled by default. An operator may configure auth.authentik_management with an HTTPS provider origin, token_env, restricted user_path and optional invitation_flow UUID. Give the provider service account only the necessary user/invitation object permissions. Live Authentik RBAC has not been rehearsed by this development work; adapter checks do not replace provider-side restrictions.

Create, invite and provider-disable actions retain durable operation references. An invitation is created in Authentik but its email is not sent automatically; use provider invitation administration for delivery. Provider IDs are not assumed to be OIDC subjects.

For pending or uncertain operations, use the displayed inventory and provider correlation to reconcile in Authentik before starting another operation. Refresh reads status and never retries an external action. Credentials and provider response bodies are excluded from displays.

See team setup for the device user's journey and areas and projects for ownership.

© 2026 Olivier Van Acker (3vilM33pl3). Codifix is AGPL-3.0-or-later with commercial licensing available.