Skip to content

Add proto definitions for Port Exposure feature #96

Description

@rowan-stein

User Request

Add all proto definitions needed for the Port Exposure feature. This is the foundation that all other implementation streams depend on.

Specification

New files

1. proto/agynio/api/expose/v1/expose.proto

  • New ExposeService with RPCs: AddExposure, RemoveExposure, ListExposures
  • Exposure resource with fields: id (via EntityMeta), workload_id, agent_id, port, openziti_service_id, openziti_bind_policy_id, openziti_dial_policy_id, url, status
  • ExposureStatus enum: UNSPECIFIED, PROVISIONING, ACTIVE, FAILED, REMOVING
  • Pagination on ListExposures (page_size, page_token)

2. proto/agynio/api/gateway/v1/expose.proto

  • New ExposeGateway service with same 3 RPCs, importing and reusing types from expose/v1

Modified files

3. proto/agynio/api/ziti_management/v1/ziti_management.proto

  • Add 5 new RPCs: CreateServicePolicy, DeleteServicePolicy, DeleteService, CreateDeviceIdentity, DeleteDeviceIdentity
  • Add ServicePolicyType enum (UNSPECIFIED, BIND, DIAL)
  • Add config messages: HostV1Config, InterceptV1Config, PortRange
  • Extend CreateServiceRequest with optional host_v1_config (field 3) and intercept_v1_config (field 4)
  • Add all corresponding request/response messages

4. proto/agynio/api/users/v1/users.proto

  • Add DeviceStatus enum (UNSPECIFIED, PENDING, ENROLLED)
  • Add Device message (meta, user_identity_id, name, openziti_identity_id, status)
  • Add 3 RPCs to UsersService: CreateDevice, ListDevices, DeleteDevice
  • CreateDeviceResponse includes enrollment_jwt

5. proto/agynio/api/gateway/v1/users.proto

  • Add 3 RPCs to UsersGateway: CreateDevice, ListDevices, DeleteDevice

Conventions

  • Follow existing patterns: EntityMeta, ENUM_PREFIX naming, package agynio.api.<service>.v1, Go package format
  • Gateway protos import from internal protos — never duplicate messages
  • Must pass buf lint and buf breaking --against main

Architecture references

  • agynio/architecture: changes/2025-07-25-port-exposure.md, architecture/expose-service.md, architecture/users.md#devices, architecture/openziti.md, architecture/gateway.md

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