Skip to content

feat: add Milo IAM for graph.inventory.miloapis.com (v1alpha2)#45

Open
ecv wants to merge 1 commit into
mainfrom
feat/graph-iam
Open

feat: add Milo IAM for graph.inventory.miloapis.com (v1alpha2)#45
ecv wants to merge 1 commit into
mainfrom
feat/graph-iam

Conversation

@ecv

@ecv ecv commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

What

Adds Milo IAM (ProtectedResource + Role) for the v1alpha2 property-graph group graph.inventory.miloapis.com (kinds Node, Edge, NodeType, EdgeType).

These had no IAM, so every verb on the graph group is Forbidden — the datumctl plugin reaches the API but gets denied (datum-cloud/inventory#10 verification). Mirrors the existing inventory.miloapis.com IAM in this package.

Changes

  • protected-resources/graph-{node,edge,nodetype,edgetype}.yaml — register the four kinds so graph.inventory.miloapis.com/<plural>.<verb> permission strings are addressable.
  • roles/graph-{viewer,editor,admin,operator}.yaml — group-wide roles in milo-system, same semantics as the inventory.miloapis.com-* roles (viewer = read; editor = +write; admin inherits editor; operator = read + update/patch for the controller).
  • Wired into both iam kustomizations; README documents the graph group. kustomize build config/base/iam passes.

Scope

Definitions only. PolicyBinding grants to specific principals are per-environment and live in datum-cloud/infra (separate PR).

Part of datum-cloud/inventory#9 (RBAC needed for the v1alpha2 plugin). Pairs with a datum-cloud/infra PR that binds these roles.

The v1alpha2 property-graph API (group graph.inventory.miloapis.com,
kinds Node/Edge/NodeType/EdgeType) had no ProtectedResources or Roles, so
every verb on it is Forbidden. Add them mirroring the existing
inventory.miloapis.com IAM.

- protected-resources/graph-{node,edge,nodetype,edgetype}.yaml register
  the four kinds so graph.inventory.miloapis.com/<plural>.<verb>
  permission strings become addressable.
- roles/graph-{viewer,editor,admin,operator}.yaml — group-wide roles in
  milo-system, same semantics as the inventory.miloapis.com-* roles.
- Wire both into the iam kustomizations; document the group in the README.

Bindings remain per-environment (granted in datum-cloud/infra).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant