Skip to content

Add proto definitions for Port Exposure feature #96

@rowan-stein

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions