Skip to content

feat(policy): add fail-closed declarative admission mutations #151

Description

@scttbnsn

Why\n\nSockguard already rewrites owner labels and verified image references internally, while mikesir87/docker-socket-proxy exposes useful operator-configurable request mutators. A bounded mutation layer can enforce mandatory metadata and controlled image migration without giving plugins arbitrary code execution.\n\n## Initial scope\n\n- Mandatory label injection for supported create surfaces.\n- Exact/prefix image-reference remapping for container and service deployment.\n- Deterministic ordering relative to owner stamping and image-trust digest pinning.\n- Canonicalize and fully re-inspect the mutated body before forwarding.\n- Audit both the mutation rule identifier and final policy verdict without logging secret values.\n\n## Acceptance\n\n- A mutation cannot introduce a field that bypasses body, ownership, or image-trust policy.\n- Case-variant/duplicate JSON protections still hold after rewriting.\n- Warn/audit rollout modes describe the would-mutate result without mutating forwarded traffic.\n- Mutation is bounded declarative configuration, not an arbitrary execution hook.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions