62 lines
2.8 KiB
Markdown
62 lines
2.8 KiB
Markdown
## MODIFIED Requirements
|
|
|
|
### Requirement: Host identity is authenticated and bound to one host id
|
|
The internal Host Agent API SHALL require a host-scoped bearer principal and
|
|
SHALL reject any request that attempts to act for a `host_id` different from
|
|
the authenticated principal's bound host.
|
|
|
|
#### Scenario: Host authenticates as itself
|
|
- **WHEN** a Host Agent presents valid credentials bound to its requested
|
|
`host_id`
|
|
- **THEN** the internal API authorizes permitted heartbeat, claim, renewal,
|
|
result, policy retrieval, and self-submission operations
|
|
|
|
#### Scenario: Host attempts to impersonate another host
|
|
- **WHEN** valid credentials bound to host A are used on a request for host B
|
|
- **THEN** the internal API rejects the request without reading or modifying
|
|
host B's state
|
|
|
|
### Requirement: Host Agent synchronizes heartbeat and complete device snapshots
|
|
The Host Agent SHALL periodically submit its complete local device snapshot
|
|
and last applied policy revision to the control plane, and the control plane
|
|
SHALL atomically refresh the host heartbeat, replace only that host's
|
|
pooled-device records, and return the effective Host policy whenever its
|
|
revision differs.
|
|
|
|
#### Scenario: Host reports devices
|
|
- **WHEN** a Host Agent submits a valid heartbeat containing its current devices
|
|
- **THEN** the control plane updates the host's last-seen time and exposes the
|
|
submitted devices through the aggregated pool
|
|
|
|
#### Scenario: Host policy revision changed
|
|
- **WHEN** a Host heartbeat presents a revision older than the effective
|
|
Cloud-host policy
|
|
- **THEN** the response includes the complete newer policy and revision for the
|
|
Host to cache
|
|
|
|
#### Scenario: Host policy revision is current
|
|
- **WHEN** a Host heartbeat presents the current effective policy revision
|
|
- **THEN** the response confirms that revision without resending an unrelated
|
|
policy representation
|
|
|
|
#### Scenario: Host reports no devices
|
|
- **WHEN** a previously populated host submits an empty device snapshot
|
|
- **THEN** only that host's prior device records are removed while devices
|
|
owned by other hosts remain unchanged
|
|
|
|
## ADDED Requirements
|
|
|
|
### Requirement: Host can submit a self-targeted goal through the outbound protocol
|
|
The Host Agent SHALL be able to submit a goal-only task through its existing
|
|
outbound authenticated protocol, and the control plane SHALL derive its target
|
|
from the authenticated Host rather than accepting another Host identifier.
|
|
|
|
#### Scenario: Host submits a local goal
|
|
- **WHEN** an authenticated Host submits a valid goal through its internal
|
|
self-submission operation
|
|
- **THEN** the control plane returns a queued task targeted to that Host
|
|
|
|
#### Scenario: Host submits an ineligible local Device
|
|
- **WHEN** a Host names a Device that is not owned by its authenticated Host
|
|
- **THEN** the control plane rejects the request without creating a task
|