docs(keycloak-session-store): import the session-storage lab as a new project
The keycloak project ended with four open questions that design could not
settle. A two-VM lab was built to answer them by measurement, and this is
that material: 26 experiments, 125 raw command outputs, 22 browser captures.
Follows the import procedure in README.md.
source/ the originating repository verbatim — 78 documents, 28 SVGs,
8 manifests, plus .source-revision recording the commit
final/ the SSOT
document.md 729 lines written from the 29 experiment documents, not
concatenated: what was predicted, what was measured, and
where the measurement itself was wrong
evidence/raw 125 outputs, flattened to <experiment>__<file> because
the originals collided (01-baseline.txt appeared three
times) and the audit only globs the top level
evidence/meta one per raw file; command and exitCode are null and the
README says why rather than inventing them
evidence/browser 22 captures
assets/ three diagrams through techviz
.techviz/ their VizSpecs
A separate project rather than an addition to keycloak: the B-layer answers
that project's four questions, but the A, C and D layers are about cluster
failure, SSO and operations, and one document.md should hold one subject.
The four question records there can point here through 관계.
Recorded rather than papered over: only three of the 28 diagrams were
remade. The repository forbids hand-drawn SVG and forbids titles inside the
canvas; all 28 originals carry both, so converting them is redrawing, not
reformatting. They stay in source/ and the gap is written into the document.
verify-pipeline.py passes. audit-records.py reports no issues.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
43bccd08a8
commit
b2963105a8
+62
@@ -0,0 +1,62 @@
|
||||
---
|
||||
kind: REFERENCE
|
||||
slug: grades-may-understate-never-overstate
|
||||
title: 등급은 네 단계로 나누고 관측보다 높게 적지 않는다
|
||||
topic: self-disclosure-grading
|
||||
project: clean-architecture-backend-template
|
||||
status: 게시 전
|
||||
sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916
|
||||
rootTreeNode: reference:grades-may-understate-never-overstate
|
||||
verifiedOn: # 이 기록은 이번 회차에 실행 확인을 하지 않았다
|
||||
---
|
||||
|
||||
# 등급은 네 단계로 나누고 관측보다 높게 적지 않는다
|
||||
|
||||
## 목적
|
||||
|
||||
능력 성숙도를 자기 신고할 때 낙관적으로 적어, 그 표를 읽고 배포를 결정하는 사람이 없는 것을 있다고 믿는 것을 막는다.
|
||||
|
||||
## 규칙
|
||||
|
||||
1. 단계마다 요구하는 증거를 정의한다
|
||||
코드가 있다는 것과 실행 경로에 있다는 것과 외부 시스템과 검증되었다는 것과 실부하에서 검증되었다는 것을 나눈다.
|
||||
|
||||
2. 낮게 적는 것은 허용하고 높게 적는 것은 금지한다
|
||||
방향을 명시하면 애매한 경우의 처리가 정해진다.
|
||||
|
||||
3. 증거 칸에 구체적인 수를 적는다
|
||||
테스트 이름만으로는 그 테스트가 무엇을 보장하는지 알 수 없다.
|
||||
|
||||
4. 부재를 함께 적고 테스트로 고정한다
|
||||
요청 경로에 없다는 사실을 테스트가 붙들면, 나중에 배선될 때 그 테스트가 깨지고 등급표를 함께 갱신하게 된다.
|
||||
|
||||
5. 어느 단계에도 못 미치면 미달성으로 적는다
|
||||
가장 낮은 등급을 주지 않는다.
|
||||
|
||||
## 적용 조건
|
||||
|
||||
능력 성숙도를 문서로 공시하는 모든 모듈
|
||||
|
||||
플랫폼 가족과 지원 매트릭스
|
||||
|
||||
## 예외
|
||||
|
||||
외부 계약으로 등급 어휘가 정해져 있으면 그것을 따른다. 그 경우에도 높게 적지 않는다는 규칙은 유지한다.
|
||||
|
||||
## 예시
|
||||
|
||||
GraphQL 리프의 등급표가 열세 행 중 여섯을 modelled 로, 하나를 미달성으로 적는다. 분석이 관측과 대조했을 때 어긋난 것은 한 행이었다.
|
||||
|
||||
관측 태그 카디널리티 행의 증거가 임의 이름 10,000개가 시계열 1개가 된다는 측정을 적는다.
|
||||
|
||||
커서 서명 행이 자동설정이 아무것도 생성하지 않는다는 사실과 그것을 고정하는 테스트를 함께 적는다.
|
||||
|
||||
## 관계
|
||||
|
||||
- **네 단계 공시 등급 — modelled에서 production-verified까지**
|
||||
이 규칙이 나온 개념이다.
|
||||
- **등급표 13행 중 일곱을 스스로 강등하고 한 행만 관측과 어긋났다**
|
||||
이 규칙이 지켜졌을 때의 결과다.
|
||||
- **능력 등급은 코드가 아니라 실행된 증거에서 파생한다**
|
||||
같은 원칙을 채택한 결정이다.
|
||||
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
---
|
||||
kind: REFERENCE
|
||||
slug: runtime-membership-decides-severity
|
||||
title: runtime_memberships를 먼저 읽고 심각도를 정한다
|
||||
topic: self-disclosure-grading
|
||||
project: clean-architecture-backend-template
|
||||
status: 게시 전
|
||||
sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916
|
||||
rootTreeNode: reference:runtime-membership-decides-severity
|
||||
verifiedOn: # 이 기록은 이번 회차에 실행 확인을 하지 않았다
|
||||
---
|
||||
|
||||
# runtime_memberships를 먼저 읽고 심각도를 정한다
|
||||
|
||||
## 목적
|
||||
|
||||
같은 형태의 결함에 같은 심각도를 매겨, 배포되지 않는 코드의 문제와 지금 도는 코드의 문제를 구별하지 못하는 것을 막는다.
|
||||
|
||||
## 규칙
|
||||
|
||||
1. 레지스트리를 먼저 읽는다
|
||||
그 리프가 어떤 런타임 컴포지션에 속하는지가 첫 질문이다.
|
||||
|
||||
2. 멤버십이 비어 있으면 오늘의 사고가 아니다
|
||||
배포되지 않는 코드의 미조립은 프로덕션 영향이 0 이다.
|
||||
|
||||
3. 그렇다고 기록하지 않는 것은 아니다
|
||||
배선되는 날 한꺼번에 오늘의 사고가 된다. 그날의 목록이 지금 있어야 한다.
|
||||
|
||||
4. 배포되지 않는 상태가 테스트로 고정되어 있는지 확인한다
|
||||
규약으로만 지켜지면 실수로 배선될 수 있다.
|
||||
|
||||
5. 문서가 그 상태를 공시하는지 확인한다
|
||||
레지스트리가 비어 있는데 지원 매트릭스가 그 능력을 싣고 있으면, 심각도 판정과 문서가 어긋난다.
|
||||
|
||||
## 적용 조건
|
||||
|
||||
발견의 심각도를 매기는 모든 분석
|
||||
|
||||
플랫폼 가족처럼 배포 여부가 리프마다 다른 구조
|
||||
|
||||
## 예외
|
||||
|
||||
보안 결함은 배포되지 않아도 기록 우선순위가 높을 수 있다. 배선 시점에 그것이 함께 배포되기 때문이다.
|
||||
|
||||
## 예시
|
||||
|
||||
웹소켓 어댑터의 런타임 멤버십이 비어 있고, 조건부 전송 조립 계약 테스트의 빌드 전용 목록이 그 사실을 고정한다.
|
||||
|
||||
gRPC 가족 18개 리프 전부의 멤버십이 비어 있고, 호환성 문서가 출시되지 않았다고 공시한다.
|
||||
|
||||
같은 형태의 미조립이라도 messaging 쪽은 출하 아티팩트에 실리므로 심각도가 다르다.
|
||||
|
||||
## 관계
|
||||
|
||||
- **build-only 등급이 90개 파일의 미조립을 오늘의 사고에서 면제한다**
|
||||
이 규칙을 만든 사례다.
|
||||
- **gRPC 플랫폼은 build-only로 두고 애플리케이션 도달 경로를 먼저 정한다**
|
||||
이 규칙이 결정으로 표현된 사례다.
|
||||
- **Bean 애너테이션이 있다는 것은 조립 증거가 아니다**
|
||||
같은 계열의 확인 규칙이다.
|
||||
|
||||
Reference in New Issue
Block a user