ADORSYS-GIS / ADORSYS-GIS/lightbridge-authz

[Epic]: Console backend contracts — every honestly-disabled console surface gets a real read path or a recorded no

未关闭
#619 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
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

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。