Skip to content

security: migrate Codex fleet scanning to persistent serialized auth #34

Description

@jason-allen-oneal

Problem

The fleet-wide Codex Security caller design copies one rotating ChatGPT OAuth session into multiple disposable GitHub-hosted runners. Concurrent refreshes invalidate one another, and refreshed state is discarded after each run.

Required architecture

  • Run scans serially from one trusted persistent execution environment.
  • Keep CODEX_HOME on encrypted persistent storage with least-privilege filesystem permissions.
  • Use a dedicated self-hosted runner or a service API credential.
  • Never publish refreshed authentication through artifacts or Actions caches.
  • Preserve repository-native CodeQL, Dependabot, Scorecard, and CI coverage.

Acceptance criteria

  • Trusted runner or service credential is provisioned through a host-owned secure flow.
  • One central fleet workflow scans the approved repository inventory serially.
  • Authentication refresh state survives scheduled runs without copying it to repositories.
  • Concurrency prevents overlapping scanner use.
  • Results are private, encrypted, and retained under documented policy.
  • A complete canary scan succeeds before fleet scheduling is enabled.
  • Obsolete repository-local OAuth secrets are removed after migration.

Current blocker

Neither configured GitHub identity can administer organization runners, and a new credential cannot be collected through chat. Provisioning therefore requires an organization owner using GitHub's secure runner setup or a separately managed API credential.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions