|
Ran
|
Jobs
1
|
Files
311
|
Run time
1min
|
Badge
README BADGES
|
push
github
feat(dataaccess): approval lifetimes and agent-session binding (Perimeter D29) (#451) Perimeter D29 ([datatug/backstage#165](https://github.com/datatug/backstage/pull/165)): approval lifetimes and agent-session binding in `pkg/dataaccess`. - `Grant.Lifetime`: `deadline` (also the meaning of an absent lifetime) or `session` (agent grants only). `once` is reserved and refused until DAS L4; its statement data (D30: key set, INSERT rows, new values, preconditions) attaches later as an optional object, so the shape grows without a break. - `Grant.AgentSessionID` binds a `session` grant to one server-minted agent session; `AccessRequest.Lifetime` carries the requested lifetime. - `Resolution.AgentSession{id, endsAt}` is the evaluator input: the live session the host authorized the agent's call under (never on a user's or a person's resolution). - A session grant counts only in its own session and never past `endsAt`; any other session grant confers nothing, so standing and deadline access keep working without a session (D29 SQ-5). The lease digest binds the session ID when a grant uses it (not its moving idle end). Tests: session binding and cap, ended/other/no session, stale grant, digest rollover, exact posture, validation. 100% coverage. Review: two rounds, final APPROVE (Reviewed-Head: 39f8e310a). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Source commits: - 0b763a7ca263 feat(dataaccess): approval lifetimes and agent-session binding (Perimeter D29) Grant.Lifetime (deadline | session; once reserved) and Grant.AgentSessionID; AccessRequest.Lifetime; Resolution.AgentSession as the evaluator input. A session grant counts only in its own live agent session, capped at the session's end; any other is BINDING_MISMATCH. The digest binds the session ID. - 39f8e310ac5e fix(dataaccess): unbound session grants confer nothing; bind the session only when used Review of 0b763a7: a stale session grant no... (continued)
29 of 29 new or added lines in 5 files covered. (100.0%)
39024 of 39024 relevant lines covered (100.0%)
1.0 hits per line
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 1 | 41875600295.1 | 311 |
100.0
|
GitHub Action Run |
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line |
|---|