ADORSYS-GIS / ADORSYS-GIS/lightbridge-authz
[Epic]: Console backend contracts — every honestly-disabled console surface gets a real read path or a recorded no
- 主要语言
- Rust
- 星标
- 0
- 派生
- 1
- 平均合并
- 7 小时 7 分钟
- 30 天内合并 PR
- 237
描述
### Summary
The console (`converse-frontends#368`) ships nav rows and page blocks that are **deliberately disabled-with-reason rather than fabricated**, because there is no backend procedure behind them. Fourteen tickets were filed in this repo from that one driver epic. This is their authz-side home.
### Intent
`#368` lives in another repo, so "how much of the console is still blocked on us" is currently unanswerable from here — it is fourteen unparented tickets with no shared progress signal. This epic makes it one number.
It closes when every disabled console surface either has a real contract in `authz.cstack`, or a recorded permanent "no". **A recorded "no" closes a child as legitimately as an implementation does** — two of these are decision tickets, not build tickets.
### Children
- **Budget/refill reads** — #556 (decided augmentation requests), #557 (consumed/ceiling snapshot), #558 (grant history for reviewers), #559 (requester note), #560 (requester identity), #561 (project dimension on balance), #577 (self-scoped balance reads)
- **Platform reads** — #562 (expose `max_lifetime_days`), #571 (`listRoles`/`listPermissions`), #572 (`listQuotaTiers`), #573 (version/build endpoint)
- **Decisions, not builds** — #594 (is account-level membership a concept at all?), #597 (does any outcome/error signal exist to expose?)
- **Scope** — #602 (unscoped account listing)
### Acceptance Criteria
1. Every child is closed, each by **either** a procedure that exists in `crates/lightbridge-authz-api/schema/authz.cstack` **or** a written decision recorded on the ticket that the surface will not be served.
2. Each shipped procedure has a contract test in this repo asserting an authorized caller receives real values and an unauthorized caller is refused — verified here, not by observing the frontend.
3. A comment on `converse-frontends#368` lists what shipped and what was declined.
### Out of Scope
- **The frontend's consumption of these procedures.** That is `#368`. ⚠️ Deliberately excluded: several children currently carry an AC phrased as *"console follow-up can render real values with no hardcoded nulls"*, which is unverifiable from this repo and is satisfied or broken by edits nobody here sees. This epic's contract is the **backend surface**.
- Frontend work of any kind.
### Technical Context
⚠️ **Judgement call worth revisiting:** #556–#561 and #577 are budget-domain and could instead hang off **#188**. They are here because #188's completion is not blocked by them (it is about the ledger and the policy engine), whereas #368's completion is blocked by all fourteen — and splitting the cluster is what loses the cross-repo signal.
⚠️ **#597's resolution likely lands inside #581's ingest redesign** (whether any outcome signal is captured at all is a store question). Cross-reference rather than re-parent.
⚠️ **#573 should not be gated behind the other thirteen** — it is a read-only diagnostic route and the smallest item here.
### AI Usage Declaration
Cluster identified and epic drafted by Claude Opus 5 during the 2026-09-01 triage sweep; the fourteen tickets' shared origin in `#368` was verified from their bodies. AI output is not truth; the owner verifies the grouping.
贡献指南
调研方向
Start with crates/lightbridge-authz-api/schema/authz.cstack and the fourteen child tickets, beginning with #573 as the smallest item. For each child, determine whether a backend procedure or a recorded decision is required, then verify shipped procedures with authorized and unauthorized contract tests. Done means every child is closed and converse-frontends#368 lists what shipped and what was declined.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- rust
- 领域
- api, backend, testing
- Issue 类型
- 功能
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 活跃
- 描述清晰度
- 需要澄清
- 新手友好度
- 30/100