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>
96 lines
8.5 KiB
Plaintext
96 lines
8.5 KiB
Plaintext
Sub-scope 211-inbound-graphql-http-probes.txt (inbound-graphql) http + error + observation
|
|
revision=a24ece9cf797f7ea647e33bf846b115208ed1ba5
|
|
generatedAt=2026-08-30T08:37:06+00:00
|
|
|
|
=== OWNED FILES ===
|
|
a64216c96a7f8832a1765b91e8f36fe84622e970 src/main/java/dev/caskeleton/error/GraphQlErrorCategory.java 40
|
|
7e94fb6683f7bf73ee98812f6b4695c8bcd407c3 src/main/java/dev/caskeleton/error/GraphQlErrorCode.java 43
|
|
5e71c9adec90157d1d27125f5c7102232c68151c src/main/java/dev/caskeleton/error/GraphQlErrorContext.java 40
|
|
e4b1a4a9db692368366a2ef4caa376b08c71cb09 src/main/java/dev/caskeleton/error/GraphQlExceptionResolver.java 92
|
|
79950e05fbf4c0bb6d80b73316db99943e4b15b1 src/main/java/dev/caskeleton/error/GraphQlFailureBoundary.java 21
|
|
842db2e3571ea12cc3af423662c21e9d718d8efc src/main/java/dev/caskeleton/error/GraphQlInternalErrorMasker.java 75
|
|
aa2df6333a5794fc93c56bf78d568a6cd275c50f src/main/java/dev/caskeleton/error/GraphQlNullabilityContract.java 67
|
|
93b94cc0f7447014685c755a409e39ce32b255aa src/main/java/dev/caskeleton/error/GraphQlRequestErrorMapper.java 57
|
|
1cc8f013abdc9739477b64883f5f99d9c91a7412 src/main/java/dev/caskeleton/error/GraphQlSubscriptionExceptionResolver.java 62
|
|
8ccd52a69fad61dc942047763bec62273a5e415a src/main/java/dev/caskeleton/error/GraphQlWireError.java 102
|
|
6e9f4cd0c4d8354eb7f9c1bf3cf7da77610f3fac src/main/java/dev/caskeleton/http/GraphQlAcceptHeader.java 151
|
|
97840ca041c94512d6585c511d8a2bc95d47c66b src/main/java/dev/caskeleton/http/GraphQlExecutionOutcome.java 42
|
|
fb3d7f3ef657b4c58590a10ab750c70e2087cdf3 src/main/java/dev/caskeleton/http/GraphQlExtensionsPolicy.java 68
|
|
f70cb077933f8b417dae768607a21bf528c09173 src/main/java/dev/caskeleton/http/GraphQlHttpContractException.java 39
|
|
61133b5aeb1bbc70d222d0c34076ea759b6ed1fe src/main/java/dev/caskeleton/http/GraphQlHttpExecutor.java 24
|
|
2a86eaa8228c2e2fe8fb5aff25e6beb89fc502e9 src/main/java/dev/caskeleton/http/GraphQlHttpOutcome.java 53
|
|
fe000f8f28f76e3b44c7cef2ede2d24b09ab481d src/main/java/dev/caskeleton/http/GraphQlHttpProfile.java 89
|
|
e37342c1440b9d8c979e223de0fd29adb8fcc0d1 src/main/java/dev/caskeleton/http/GraphQlHttpRequestEnvelope.java 46
|
|
54978717ef7dcf4e4225d674f7189a06f79e2ade src/main/java/dev/caskeleton/http/GraphQlHttpResponse.java 44
|
|
d316d49cfe9c32e681685f8c4c33bf2c15f675c2 src/main/java/dev/caskeleton/http/GraphQlHttpResponseFactory.java 84
|
|
546105a180afb35a02140375cedb5b7b4baeecf6 src/main/java/dev/caskeleton/http/GraphQlHttpResponsePolicy.java 46
|
|
7f283686a734f91bedd63d758045b317fed5ebec src/main/java/dev/caskeleton/http/GraphQlHttpStatusMapper.java 42
|
|
56a9fb402bbd27e23c0b1dad66f4a6b7fbb2ff56 src/main/java/dev/caskeleton/http/GraphQlJsonStructurePolicy.java 100
|
|
c3b9a6ca94d1f9f469d9ae09e663bd198bb83238 src/main/java/dev/caskeleton/http/GraphQlJsonValues.java 56
|
|
20d965e9aa22c82c30028c2ad2a0a8e707cbfdb0 src/main/java/dev/caskeleton/http/GraphQlMediaTypes.java 100
|
|
9a27234cd532a62719e81207ed179a0a50e7ed83 src/main/java/dev/caskeleton/http/GraphQlRequestEnvelopeValidator.java 152
|
|
958bd528a42a777ac1c01d5278fd61454ee7c5b2 src/main/java/dev/caskeleton/http/GraphQlRequestFormatException.java 22
|
|
6b0420336260c3296eb6b8399b4f176c4831b1c8 src/main/java/dev/caskeleton/http/GraphQlRequestSize.java 88
|
|
378ae9d85df73d7a25c9d1925d0690532a075ac5 src/main/java/dev/caskeleton/http/GraphQlRequestTooLargeException.java 51
|
|
87582f3b187f81238ca1a091978267294ee82d75 src/main/java/dev/caskeleton/observation/GraphQlDataLoaderObservationConvention.java 67
|
|
81b48d755a62d01d7923d66353af4d78b66120b2 src/main/java/dev/caskeleton/observation/GraphQlMetricCardinalityPolicy.java 66
|
|
7458b0b338fea237093fefe9afd4b77c4d93e89d src/main/java/dev/caskeleton/observation/GraphQlObservationContractException.java 31
|
|
7ea96914b5ff2783d0907417d1efd5e9416a249c src/main/java/dev/caskeleton/observation/GraphQlObservationNames.java 22
|
|
6be9e5abea0369240bce973a6aa409490ec91e7d src/main/java/dev/caskeleton/observation/GraphQlOperationNameCardinality.java 94
|
|
dca256ada4a466332da8e76c91741af8b33c8e88 src/main/java/dev/caskeleton/observation/GraphQlProfilerAccessPolicy.java 57
|
|
cdd5263b3cd5ec7719ef917b54444492237ae901 src/main/java/dev/caskeleton/observation/GraphQlRequestObservationConvention.java 180
|
|
111986d91fa21149cbf5da95ec1ba8be61eef036 src/main/java/dev/caskeleton/observation/GraphQlResolverObservationConvention.java 57
|
|
03dbe544251d1c19f456faf2125000274f7242bf src/main/java/dev/caskeleton/observation/GraphQlSensitiveAttributeFilter.java 68
|
|
e1d762502dc1061af885d1d25bf9a58c2c160482 src/test/java/dev/caskeleton/error/GraphQlExceptionResolverTest.java 130
|
|
19807dec80b2bb7f8f0d7184e847a5ac89729dbd src/test/java/dev/caskeleton/error/GraphQlNullPropagationContractTest.java 97
|
|
255157f40451e6b2a8af80817ce654b4ea579b9a src/test/java/dev/caskeleton/error/GraphQlWireErrorTest.java 81
|
|
43a11b8619fcbfd6209aa6eadbfc7ed9dcd75f6a src/test/java/dev/caskeleton/http/GraphQlAcceptNegotiationTest.java 126
|
|
84172419facea986a5d2ec7144c25f1608bb33a4 src/test/java/dev/caskeleton/http/GraphQlHttpProfileTest.java 78
|
|
b537c44fcae71eb0a2f92577ac65e20ff0d2310a src/test/java/dev/caskeleton/http/GraphQlHttpStatusMapperTest.java 96
|
|
77b18d0a6cfd4ff823979a25f8496d5f2e15ee0a src/test/java/dev/caskeleton/http/GraphQlRequestBoundsTest.java 173
|
|
de92d9abb06401f27647749b66296e6b1bb1a049 src/test/java/dev/caskeleton/http/GraphQlRequestEnvelopeValidatorTest.java 134
|
|
8a0a51aff3eabd25d47e1b0168a1c06ac9e123ab src/test/java/dev/caskeleton/observation/GraphQlMetricCardinalityPolicyTest.java 162
|
|
d79b5b8beecedf2f1ae20773c0616be9f495b24c src/test/java/dev/caskeleton/observation/GraphQlOperationNameCardinalityTest.java 129
|
|
file_count=48
|
|
|
|
=== 배선 전수 (autoconf 패키지 참조 / 자기·autoconfigure 제외 main 참조 / test 참조 / LOC) ===
|
|
TYPE autoconf main_other test LOC
|
|
GraphQlAcceptHeader 0 1 1 151
|
|
GraphQlExecutionOutcome 0 1 3 42
|
|
GraphQlExtensionsPolicy 0 2 2 68
|
|
GraphQlHttpContractException 0 4 5 39
|
|
GraphQlHttpExecutor 0 0 1 24
|
|
GraphQlHttpOutcome 0 8 3 53
|
|
GraphQlHttpProfile 2 2 4 89
|
|
GraphQlHttpRequestEnvelope 0 3 3 46
|
|
GraphQlHttpResponse 0 2 2 44
|
|
GraphQlHttpResponseFactory 0 0 2 84
|
|
GraphQlHttpResponsePolicy 0 2 1 46
|
|
GraphQlHttpStatusMapper 0 1 2 42
|
|
GraphQlJsonStructurePolicy 4 2 1 100
|
|
GraphQlJsonValues 0 2 0 56
|
|
GraphQlMediaTypes 0 3 5 100
|
|
GraphQlRequestEnvelopeValidator 0 0 3 152
|
|
GraphQlRequestFormatException 0 4 2 22
|
|
GraphQlRequestSize 0 3 2 88
|
|
GraphQlRequestTooLargeException 0 3 2 51
|
|
GraphQlErrorCategory 0 9 4 40
|
|
GraphQlErrorCode 0 7 4 43
|
|
GraphQlErrorContext 0 12 6 40
|
|
GraphQlExceptionResolver 4 3 1 92
|
|
GraphQlFailureBoundary 0 1 1 21
|
|
GraphQlInternalErrorMasker 0 2 3 75
|
|
GraphQlNullabilityContract 0 0 1 67
|
|
GraphQlRequestErrorMapper 0 0 1 57
|
|
GraphQlSubscriptionExceptionResolver 0 0 1 62
|
|
GraphQlWireError 0 12 5 102
|
|
GraphQlDataLoaderObservationConvention 3 0 1 67
|
|
GraphQlMetricCardinalityPolicy 4 1 1 66
|
|
GraphQlObservationContractException 0 1 1 31
|
|
GraphQlObservationNames 0 3 3 22
|
|
GraphQlOperationNameCardinality 4 1 3 94
|
|
GraphQlProfilerAccessPolicy 0 0 1 57
|
|
GraphQlRequestObservationConvention 4 1 3 180
|
|
GraphQlResolverObservationConvention 3 0 1 57
|
|
GraphQlSensitiveAttributeFilter 6 4 3 68
|