Skip to content

Phase 0: Implement shared/profile-schema.ts (Zod) #2

Description

@ericmmartin

Goal

Define and validate the .conductor/profile.yml schema in one place, used by both the orchestrator (Phase 2 TS) and the plugin (Phase 0+ bash).

Acceptance criteria

  • packages/shared/src/profile-schema.ts exports a Zod schema for the full profile (see docs/profile-reference.md)
  • All sensitive fields are *_env only (validator rejects literal channel_id, tenant_id, etc.)
  • loadProfile(path: string): Profile reads + validates + returns typed object
  • Unit tests covering: valid profile loads cleanly, invalid profile (missing required field) fails with a clear error, profile with a literal sensitive value fails with a pointer to the offending field

Notes

This is the source-of-truth schema. The shell lib/profile.sh reader is a parallel implementation for yq-based access; both must stay consistent with what this Zod schema accepts.

Dependencies: #1

semver: minor

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

    conductor:readyConductor state: ready to pick up

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions