Skip to content

SSH Keys (under server) #6

@fbarrento

Description

@fbarrento

What to build

First nested-under-server resource. Establishes the deep-nesting pattern ($forge->server($id)->sshKeys()->...) that subsequent under-server resources will reuse.

Endpoints (consult docs/forge.openapi.json for the exact paths — Forge has both a server-level SSH key endpoint and per-user keys under each server):

  • list SSH keys on a server
  • get one
  • create
  • delete

(SSH keys typically don't have an update operation.)

Source design: see project_sdk_design.md in the project's memory.

Acceptance criteria

  • SshKey DTO (readonly, JsonSerializable, ::from(array))
  • CreateSshKeyData input DTO
  • ListSshKeysOptions DTO (pagination, sort, any filters)
  • Request classes for each SSH-key endpoint
  • SshKeysResource (collection: all, iterate, create) and SshKeyResource (item: get, delete)
  • $forge->server($id)->sshKeys()->all() etc. — URL composition for the nested path works correctly
  • Tests against mocked responses, including URL assertions
  • composer test green

Blocked by

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