Files
document-haness/docs/clean-architecture-backend-template/final/evidence/raw/139-identifier-module-inventory.txt
T
DongHyeonkaandClaude Opus 5 b2963105a8 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>
2026-09-04 22:51:59 +09:00

107 lines
4.8 KiB
Plaintext

Scope adapter-outbound-identifier - module inventory and denominator
revision=a24ece9cf797f7ea647e33bf846b115208ed1ba5
generatedAt=2026-08-30T00:55:00+00:00
cwd=/shared/codebase/clean-architecture-backend-template/src
=== TRACKED FILES (complete) ===
c30c02f091ed8f3aeed6a288cb249bf20199caf6 CLAUDE.md 51
215b177db159c113fc32b4ecdc6bb50b923c80c3 README.md 72
eed16a2c67a65cfa0f045cacd0764aa9b96144fe build.gradle 20
183d05586f694ec4ec6fdfdd4cfcb0c33f558c71 gradle.lockfile 154
53bd99d0077378ade8d899b8ce0f0bd6cd453d45 src/main/java/dev/caskeleton/adapter/outbound/identifier/HmacUserPrincipalPseudonymizer.java 48
e81ee2fdbf34d44b00d32d0ae4ce13402b41d4b2 src/main/java/dev/caskeleton/adapter/outbound/identifier/RandomUploadIdentifierFactory.java 31
a050a2c8ce17ea132b3e58f3b0ef77ffebc7d26d src/main/java/dev/caskeleton/adapter/outbound/identifier/UuidCodec.java 30
2b35916ba902f41b2d0baee48acb48eadf56dcc9 src/main/java/dev/caskeleton/adapter/outbound/identifier/package-info.java 5
e0483b4ba84b7ad0451a37ea368af237d2194742 src/test/groovy/dev/caskeleton/adapter/outbound/identifier/UuidCodecSpec.groovy 39
b2833ce2453d91838c29f86d13633b989e32e311 src/test/java/dev/caskeleton/adapter/outbound/identifier/HmacUserPrincipalPseudonymizerTest.java 112
total tracked: 10
=== source-set breakdown ===
CLAUDE.md: 1
README.md: 1
build.gradle: 1
gradle.lockfile: 1
src: 6
=== java by source set ===
main: files=4 loc= 114 total
test: files=1 loc=112 adapter/outbound/identifier/src/test/java/dev/caskeleton/adapter/outbound/identifier/HmacUserPrincipalPseudonymizerTest.java
testFixtures: files=0 loc=0
integrationTest: files=0 loc=0
=== package map (main) ===
$ git ls-files 'adapter/outbound/identifier/src/main' | grep '\.java$' | sed 's|.*/java/||;s|/[^/]*\.java$||' | sort | uniq -c | sort -rn
4 dev/caskeleton/adapter/outbound/identifier
exit=0
=== package map (test) ===
$ git ls-files 'adapter/outbound/identifier/src/test' | grep '\.java$' | sed 's|.*/java/||;s|/[^/]*\.java$||' | sort | uniq -c | sort -rn
1 dev/caskeleton/adapter/outbound/identifier
exit=0
=== non-java tracked files ===
$ git ls-files 'adapter/outbound/identifier' | grep -v '\.java$'
adapter/outbound/identifier/CLAUDE.md
adapter/outbound/identifier/README.md
adapter/outbound/identifier/build.gradle
adapter/outbound/identifier/gradle.lockfile
adapter/outbound/identifier/src/test/groovy/dev/caskeleton/adapter/outbound/identifier/UuidCodecSpec.groovy
exit=0
=== registry entry ===
$ python3 -c "
import json;d=json.load(open('config/architecture/modules.json'))
import sys
def find(o):
if isinstance(o,dict):
if o.get('path','').endswith('outbound/identifier') or o.get('id','')=='adapter-outbound-identifier' or o.get('name','')=='adapter-outbound-identifier': return o
for v in o.values():
r=find(v)
if r: return r
elif isinstance(o,list):
for v in o:
r=find(v)
if r: return r
print(json.dumps(find(d), ensure_ascii=False, indent=2))
"
{
"id": "adapter-outbound-identifier",
"gradle_path": ":adapter:outbound:identifier",
"source_path": "src/adapter/outbound/identifier",
"allowed_dependencies": [
"domain-core",
"application-core"
],
"runtime_memberships": [
"app-bootstrap",
"sample-portfolio"
]
}
exit=0
$ git grep -n 'outbound/identifier\|adapter-outbound-identifier\|:adapter:outbound:identifier' -- 'settings.gradle' 'build.gradle' 'config/architecture/modules.json' | head -20
config/architecture/modules.json:77: "id": "adapter-outbound-identifier",
config/architecture/modules.json:78: "gradle_path": ":adapter:outbound:identifier",
config/architecture/modules.json:79: "source_path": "src/adapter/outbound/identifier",
config/architecture/modules.json:232: "adapter-outbound-identifier",
config/architecture/modules.json:251: "adapter-outbound-identifier",
exit=0
=== who depends on this leaf ===
$ git grep -rln 'dev.caskeleton.adapter.outbound.identifier' -- . | grep -v "^adapter/outbound/identifier/" | head -20
app-bootstrap/src/main/java/dev/caskeleton/bootstrap/autoconfigure/fileserver/FileserverServiceConfiguration.java
app-bootstrap/src/main/java/dev/caskeleton/bootstrap/logging/PseudonymizationConfig.java
application-core/src/main/java/dev/caskeleton/application/observability/UserPrincipalPseudonymizerPort.java
sample-portfolio/src/main/java/dev/caskeleton/sample/portfolio/bootstrap/logging/SamplePseudonymizationConfig.java
exit=0
$ git grep -rn ':adapter:outbound:identifier' -- . | grep -v "^adapter/outbound/identifier/" | head -20
app-bootstrap/build.gradle:92: implementation project(':adapter:outbound:identifier')
config/architecture/modules.json:78: "gradle_path": ":adapter:outbound:identifier",
sample-portfolio/build.gradle:38: implementation project(':adapter:outbound:identifier')
exit=0