Skip to content

Name an exposure after the entity serving it - #183

Merged
vitramir merged 2 commits into
mainfrom
entity-named-port-exposure
Aug 10, 2026
Merged

Name an exposure after the entity serving it#183
vitramir merged 2 commits into
mainfrom
entity-named-port-exposure

Conversation

@vitramir

Copy link
Copy Markdown
Contributor

The Exposure record is agent-shaped — agent_id, and nothing else — while sandboxes have exposed ports since they existed.

It takes owner_kind and owner_id, matching the generalization runners.Workload already made, plus the organization and the resolved hostname the intercept.v1 config is written from. An exposed port becomes reachable at super-sandbox.acme.agyn:3000 or research.bob.acme.agyn:3000 rather than exposed-<uuid>.agyn:3000.

agent_id stays for agent-instance owners and is marked deprecated; on AddExposureRequest it is accepted and ignored, since the owner is read from the workload record rather than asserted by the caller.

The owner-kind enum is restated here rather than imported from runners: domain packages in this module do not depend on one another, and the values match so neither side needs translating.

buf lint and buf breaking against main are both clean.

Spec: agynio/architecture change doc 2026-08-10-entity-named-port-exposure.md.

Superseded by the environment's agent_runtime_image_id. Nothing reads it: the
orchestrator refuses a workload whose environment names no runtime rather than
substituting the agent's own image (agynio/agents-orchestrator, remove the
legacy init container).
The Exposure record was agent-shaped -- agent_id, and nothing else -- while
sandboxes have exposed ports since they existed. It takes owner_kind and
owner_id, matching the generalization runners.Workload already made, plus the
organization and the resolved hostname the intercept.v1 config is written from.

agent_id stays for agent-instance owners and is marked deprecated; on
AddExposureRequest it is accepted and ignored, since the owner is read from the
workload record rather than asserted by the caller.

The owner-kind enum is restated here rather than imported from runners: domain
packages in this module do not depend on one another, and the values match so
neither side needs translating.
@vitramir
vitramir requested a review from a team as a code owner August 10, 2026 03:11
@github-actions

Copy link
Copy Markdown

The latest Buf updates on your PR. Results from workflow buf-pr / buf (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed✅ passedAug 10, 2026, 3:11 AM

@vitramir
vitramir merged commit 5ec14bd into main Aug 10, 2026
1 check passed
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