Skip to content

Replace executable manifests with a hardened data-only command contract #22

Description

@hyperpolymath

Outcome

Replace executable Elixir manifest loading with a strict, versioned, capability-limited check manifest and hardened command gateway.

Scope

  • Define a data-only manifest schema for check IDs, argv, absolute target workdir, capabilities, artifacts, timeouts, resource limits, GitHub contexts, and trust policy.
  • Remove Code.eval_file from untrusted/consumer manifest ingestion.
  • Canonicalise and validate workdirs against configured checkout roots.
  • Validate argv length, environment allow-lists, artifact paths, check IDs, and freeze destinations.
  • Add per-check timeouts, process-tree termination, output limits, and explicit mutation policy.
  • Fuzz manifest/envelope decoders and test symlink, traversal, injection, and oversized-input cases.

Acceptance criteria

  • Consumer manifests cannot execute code during parsing.
  • Invalid paths, unknown capabilities, malformed argv, and excess resource declarations fail before execution.
  • Command execution remains argv-based with no implicit shell.
  • The existing dogfood manifest and at least two external-repository fixtures round-trip through the new schema.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    architectureStructural/system-level shape and runtime behaviourmeta:roadmapForward planning; not yet actionable workpriority:p0Critical - drop other worksecurityTrust boundaries, attestation, and hardening

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions