Files
document-haness/docs/clean-architecture-backend-template/final/evidence/raw/141-fileserver-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

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