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>
134 lines
7.3 KiB
Plaintext
134 lines
7.3 KiB
Plaintext
Scope adapter-outbound-fileserver - module inventory and denominator
|
|
revision=a24ece9cf797f7ea647e33bf846b115208ed1ba5
|
|
generatedAt=2026-08-30T01:04:24+00:00
|
|
|
|
total tracked: 119
|
|
|
|
=== source-set / top-level breakdown ===
|
|
$ git ls-files 'adapter/outbound/fileserver' | sed "s|^adapter/outbound/fileserver/||" | awk -F/ '{print $1}' | sort | uniq -c | sort -rn
|
|
115 src
|
|
1 gradle.lockfile
|
|
1 build.gradle
|
|
1 README.md
|
|
1 CLAUDE.md
|
|
exit=0
|
|
|
|
$ git ls-files 'adapter/outbound/fileserver/src' | sed "s|^adapter/outbound/fileserver/src/||" | awk -F/ '{print $1}' | sort | uniq -c | sort -rn
|
|
78 main
|
|
37 test
|
|
exit=0
|
|
|
|
|
|
=== per source set: java count + LOC ===
|
|
main: java=78 loc=12707 nonjava=0
|
|
test: java=37 loc=12043 nonjava=0
|
|
|
|
=== package map (main) ===
|
|
$ git ls-files 'adapter/outbound/fileserver/src/main' | grep '\.java$' | sed 's|.*/java/||;s|/[^/]*\.java$||' | sort | uniq -c | sort -rn
|
|
33 dev/caskeleton/adapter/outbound/fileserver/platform/local
|
|
31 dev/caskeleton/adapter/outbound/fileserver
|
|
10 dev/caskeleton/adapter/outbound/fileserver/platform/verification
|
|
2 dev/caskeleton/adapter/outbound/fileserver/platform/security
|
|
2 dev/caskeleton/adapter/outbound/fileserver/platform/audit
|
|
exit=0
|
|
|
|
=== package map (test source sets) ===
|
|
--- test
|
|
15 dev/caskeleton/adapter/outbound/fileserver
|
|
11 dev/caskeleton/adapter/outbound/fileserver/platform/local
|
|
9 dev/caskeleton/adapter/outbound/fileserver/testkit
|
|
1 dev/caskeleton/adapter/outbound/fileserver/platform/verification
|
|
1 dev/caskeleton/adapter/outbound/fileserver/platform/security
|
|
|
|
=== non-java tracked ===
|
|
$ git ls-files 'adapter/outbound/fileserver' | grep -v '\.java$'
|
|
adapter/outbound/fileserver/CLAUDE.md
|
|
adapter/outbound/fileserver/README.md
|
|
adapter/outbound/fileserver/build.gradle
|
|
adapter/outbound/fileserver/gradle.lockfile
|
|
exit=0
|
|
|
|
|
|
=== largest production files ===
|
|
$ git ls-files 'adapter/outbound/fileserver/src/main' | grep '\.java$' | xargs wc -l | sort -rn | head -25
|
|
12707 total
|
|
1470 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/LocalPersistentControlPlane.java
|
|
1101 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/LocalPersistentPayloadOperations.java
|
|
896 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/LocalPersistentPublicationProvider.java
|
|
855 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/FileserverControlRecordCodec.java
|
|
773 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/LocalPersistentRootAttestor.java
|
|
437 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/LocalFilePublicationAdapter.java
|
|
400 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/platform/local/LocalBlockingContentStore.java
|
|
302 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/platform/local/LocalStorageCapabilityProbe.java
|
|
294 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/LocalPublicationJournal.java
|
|
288 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/platform/local/SafeFileChannelFactory.java
|
|
266 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/LocalPublicationJournalCodec.java
|
|
260 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/platform/local/LocalAppendEngine.java
|
|
255 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/DurablePublicationRecord.java
|
|
239 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/platform/local/LocalOrphanScanAdapter.java
|
|
227 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/FileserverBindingCompiler.java
|
|
210 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/LocalPersistentRecoveryVerifier.java
|
|
201 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/FilePublicationCanonicalDigests.java
|
|
198 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/CompiledFileDestination.java
|
|
190 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/StreamingCsvEncoder.java
|
|
189 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/FileserverR2Validation.java
|
|
188 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/FilesystemCsvExportAdapter.java
|
|
172 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/platform/local/SecureDirectoryWalk.java
|
|
145 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/LocalPublicationJournalRecord.java
|
|
134 adapter/outbound/fileserver/src/main/java/dev/caskeleton/adapter/outbound/fileserver/platform/local/DefaultPhysicalPathResolver.java
|
|
exit=0
|
|
|
|
|
|
=== registry entry + consumers ===
|
|
$ python3 -c "
|
|
import json;d=json.load(open('config/architecture/modules.json'))
|
|
def find(o):
|
|
if isinstance(o,dict):
|
|
if o.get('id','')=='adapter-outbound-fileserver': 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-fileserver",
|
|
"gradle_path": ":adapter:outbound:fileserver",
|
|
"source_path": "src/adapter/outbound/fileserver",
|
|
"allowed_dependencies": [
|
|
"application-core",
|
|
"shared-contract"
|
|
],
|
|
"runtime_memberships": [
|
|
"app-bootstrap"
|
|
]
|
|
}
|
|
exit=0
|
|
|
|
$ git grep -rn ':adapter:outbound:fileserver' -- . | grep -v "^adapter/outbound/fileserver/" | head
|
|
app-bootstrap/build.gradle:90: implementation project(':adapter:outbound:fileserver')
|
|
config/architecture/modules.json:91: "gradle_path": ":adapter:outbound:fileserver",
|
|
exit=0
|
|
|
|
$ git grep -rln 'dev.caskeleton.adapter.outbound.fileserver' -- . | grep -v "^adapter/outbound/fileserver/" | head -20
|
|
app-bootstrap/src/main/java/dev/caskeleton/bootstrap/CaSkeletonApplication.java
|
|
app-bootstrap/src/main/java/dev/caskeleton/bootstrap/autoconfigure/fileserver/FileserverSecurityConfiguration.java
|
|
app-bootstrap/src/main/java/dev/caskeleton/bootstrap/autoconfigure/fileserver/FileserverServiceConfiguration.java
|
|
app-bootstrap/src/main/java/dev/caskeleton/bootstrap/autoconfigure/fileserver/FileserverStartupCheck.java
|
|
app-bootstrap/src/main/java/dev/caskeleton/bootstrap/autoconfigure/fileserver/FileserverStartupConfiguration.java
|
|
app-bootstrap/src/main/java/dev/caskeleton/bootstrap/autoconfigure/fileserver/FileserverStartupValidator.java
|
|
app-bootstrap/src/main/java/dev/caskeleton/bootstrap/autoconfigure/fileserver/FileserverStorageConfiguration.java
|
|
app-bootstrap/src/test/java/dev/caskeleton/adapter/outbound/OptionalAdapterBeanGatingTest.java
|
|
app-bootstrap/src/test/java/dev/caskeleton/bootstrap/autoconfigure/fileserver/FileserverRuntimeAssemblyTest.java
|
|
app-bootstrap/src/test/java/dev/caskeleton/bootstrap/autoconfigure/fileserver/FileserverStartupValidatorTest.java
|
|
exit=0
|
|
|
|
|
|
=== declared test lanes / build tasks ===
|
|
$ grep -n 'lane(\|sourceSets\|tasks.register\|tasks.named' adapter/outbound/fileserver/build.gradle
|
|
exit=1
|
|
|