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>
137 lines
12 KiB
Plaintext
137 lines
12 KiB
Plaintext
Sub-scope 212-inbound-graphql-data-probes.txt (inbound-graphql) dataloader + fetch + pagination + mutation
|
|
revision=a24ece9cf797f7ea647e33bf846b115208ed1ba5
|
|
generatedAt=2026-08-30T08:39:09+00:00
|
|
|
|
=== OWNED FILES ===
|
|
d4858b8c3b218150d11877a7182832605c179566 src/main/java/dev/caskeleton/dataloader/GraphQlBatchChunker.java 58
|
|
ea5d63fb4ce3ddc7c8ae19e9b6b73618870445d1 src/main/java/dev/caskeleton/dataloader/GraphQlBatchContext.java 45
|
|
9dc350cb10c6b5a661fb0f79028ffb9dbd4a240c src/main/java/dev/caskeleton/dataloader/GraphQlBatchErrorPolicy.java 17
|
|
f4030a67605183ccd6a029d12171a1af6c9f807a src/main/java/dev/caskeleton/dataloader/GraphQlBatchExecutor.java 121
|
|
b5fe03d0afc7e15f91dad8b214c4ecf1d09f8d1c src/main/java/dev/caskeleton/dataloader/GraphQlBatchLoadException.java 29
|
|
9962aac8efff6a059a9cb722d4edd3cff91e30e8 src/main/java/dev/caskeleton/dataloader/GraphQlBatchObservation.java 41
|
|
50480641b00d725fd22e9c59c16103d28cf9a08d src/main/java/dev/caskeleton/dataloader/GraphQlBatchPolicy.java 54
|
|
cb6dd4dc73b44d4819765c71c0d947dca537ae7d src/main/java/dev/caskeleton/dataloader/GraphQlBatchPolicyRegistry.java 70
|
|
61e4fc287cdacb097779f7a8f0a21577025db165 src/main/java/dev/caskeleton/dataloader/GraphQlBatchResult.java 39
|
|
716507740004fdfdb1f036ae6e4631122ed77488 src/main/java/dev/caskeleton/dataloader/GraphQlBatchResultMapper.java 134
|
|
f771ac93dffc12d261f7e4516e2611f883aba383 src/main/java/dev/caskeleton/dataloader/GraphQlBatchTimeoutException.java 36
|
|
ff043de4e7e774fd22a1a4f9c8f0ab68829e8150 src/main/java/dev/caskeleton/dataloader/GraphQlBatchValue.java 62
|
|
eaac7a22e9f0ad41c6b0f3ec8a8574691d434155 src/main/java/dev/caskeleton/dataloader/GraphQlDataLoaderFactory.java 61
|
|
d4f06be841cb2cd9b821fb471335d12db0333e0d src/main/java/dev/caskeleton/dataloader/GraphQlDataLoaderName.java 23
|
|
17be491bf08dcb72d4e4bd148054d6fb74accab8 src/main/java/dev/caskeleton/dataloader/GraphQlDataLoaderRequestRegistry.java 64
|
|
18730499aaeddcfc0e797219210061f7359487c5 src/main/java/dev/caskeleton/dataloader/GraphQlMissingKeyException.java 24
|
|
45fcff17e2307e9df5de3c1f32dccc373df7c65f src/main/java/dev/caskeleton/dataloader/GraphQlMissingKeyPolicy.java 17
|
|
4947c892acf93e356ca4f9c1932dfed1c5686285 src/main/java/dev/caskeleton/fetch/GraphQlFetchProfile.java 49
|
|
77110c341fbf866d7768ea1a66a4b3637a564f5d src/main/java/dev/caskeleton/fetch/GraphQlFetchProfileClassifier.java 82
|
|
0b08704f2f8cfbf173476d340066d3eddcecff20 src/main/java/dev/caskeleton/fetch/GraphQlFetchProfileName.java 23
|
|
1f0f0a5bc826f7a9364ba3db0402166d8ad2e1c5 src/main/java/dev/caskeleton/fetch/GraphQlFetchProfileRegistry.java 76
|
|
4d9968b401a8c8959c8b96a2a5b52e761e4244cf src/main/java/dev/caskeleton/fetch/GraphQlFetchProfileRule.java 37
|
|
d73240db41230d6951af103caa2c884177f9c8ef src/main/java/dev/caskeleton/fetch/GraphQlFetchProfileValidationException.java 21
|
|
3e2e3d52489c61d374ffc26349ed61172756e0c1 src/main/java/dev/caskeleton/fetch/GraphQlSelectionCoordinate.java 30
|
|
490406d2540048f33c07ff1b0e0bd768c1f27ea8 src/main/java/dev/caskeleton/fetch/GraphQlSelectionSetView.java 52
|
|
dcc4e0f7e1df414938d9ec89f70d450d49f44c1b src/main/java/dev/caskeleton/fetch/GraphQlSelectionSignature.java 33
|
|
e4e182c4d9de61f4318ee5d3fe61fc2b134826d0 src/main/java/dev/caskeleton/fetch/GraphQlUnmappedSelectionException.java 31
|
|
4f56f6755f288c6ed21f69545d076a9bef59243f src/main/java/dev/caskeleton/mutation/GraphQlBatchMutationItemResult.java 28
|
|
218b788cad295dd0232fd52ffa5ec711cb01cc4b src/main/java/dev/caskeleton/mutation/GraphQlBusinessResult.java 55
|
|
58abd9df0beabe51af3b777b99ccf9ae889ba7af src/main/java/dev/caskeleton/mutation/GraphQlCanonicalInput.java 87
|
|
76a28e9e2ee4cfa8994d2a9be236c65a5f0a601d src/main/java/dev/caskeleton/mutation/GraphQlExpectedVersion.java 19
|
|
9959cf97b8bea87f3ccb3bff895895487c310876 src/main/java/dev/caskeleton/mutation/GraphQlIdempotencyConflictException.java 32
|
|
733e32fd06ef7ba06180b9c824bedd8159d88539 src/main/java/dev/caskeleton/mutation/GraphQlIdempotencyKey.java 19
|
|
f15c32a65ca1fce9338771b8ad1fa8192cf2fb8c src/main/java/dev/caskeleton/mutation/GraphQlMutationContractException.java 20
|
|
e260e2d04411c9bffa570975b5a7a4c013aac2e8 src/main/java/dev/caskeleton/mutation/GraphQlMutationContractValidator.java 92
|
|
ed25f2e340e9813e7d778f84b05ef9f7ca6aeb08 src/main/java/dev/caskeleton/mutation/GraphQlMutationCoordinate.java 21
|
|
f200f388fd332829dfeba4b394859d915747bc49 src/main/java/dev/caskeleton/mutation/GraphQlMutationFingerprint.java 49
|
|
856635892328a2192b1644bca4937869a5451bfa src/main/java/dev/caskeleton/mutation/GraphQlMutationIdempotencyContext.java 95
|
|
dc025868acba0f82731cacdf071b45483adc56b1 src/main/java/dev/caskeleton/mutation/GraphQlMutationIdempotencyInterceptor.java 77
|
|
6a5a249d4f01b503648f4584ad7427c7217c3426 src/main/java/dev/caskeleton/mutation/GraphQlMutationPayload.java 43
|
|
de543af8ee5f2491f0014dd4ba2dac425723ed9a src/main/java/dev/caskeleton/mutation/GraphQlMutationResultMapper.java 46
|
|
da0a6a08cddfc8cc24bf3878d559e75dfe1c9ab7 src/main/java/dev/caskeleton/pagination/GraphQlConnection.java 43
|
|
b8532097fd86873736a8058980b9f82c35358a99 src/main/java/dev/caskeleton/pagination/GraphQlConnectionAssembler.java 108
|
|
853486c88c9c7d6b8fb73e66e2ceda8b29450864 src/main/java/dev/caskeleton/pagination/GraphQlConnectionException.java 28
|
|
58cd8c15c373aa7661dc47307056567b047d7219 src/main/java/dev/caskeleton/pagination/GraphQlConnectionPolicy.java 45
|
|
d9faea757123589229a5fa060cf00dbdcd6f9fdf src/main/java/dev/caskeleton/pagination/GraphQlConnectionRequest.java 55
|
|
0ea21e61b40de362415b62abb3a2a337326d5ce3 src/main/java/dev/caskeleton/pagination/GraphQlCursorCodec.java 27
|
|
4614bed6e58f7114370e613abbbafe4a059762c2 src/main/java/dev/caskeleton/pagination/GraphQlCursorException.java 30
|
|
97c3e9f8d80cc82277740fe51f9a8cc69481a117 src/main/java/dev/caskeleton/pagination/GraphQlCursorFraming.java 67
|
|
52a1850d0bdc0112a6990997604948e7749370a6 src/main/java/dev/caskeleton/pagination/GraphQlCursorKeyRing.java 81
|
|
e0253a19aaf0bd9ebbc6990494491d3f1a6c74ac src/main/java/dev/caskeleton/pagination/GraphQlCursorKeyset.java 54
|
|
15afcaf195016d30092625a82e35d3e11bafe6b7 src/main/java/dev/caskeleton/pagination/GraphQlCursorPayload.java 123
|
|
da994e0bec445fc3cde7902a5863ead2464d44df src/main/java/dev/caskeleton/pagination/GraphQlCursorScope.java 57
|
|
3834061994d478d814bf574c94907adb2313e54b src/main/java/dev/caskeleton/pagination/GraphQlCursorVersion.java 45
|
|
a4dc8681d72b2b1a45c48f2aecce8ba15c6bc184 src/main/java/dev/caskeleton/pagination/GraphQlEdge.java 17
|
|
7de7cab8cf2fbdd190d21dd2b57d7f4ba879124b src/main/java/dev/caskeleton/pagination/GraphQlKeysetWindow.java 39
|
|
11250e5bf14acb6b30d1d45549403d29694bd44b src/main/java/dev/caskeleton/pagination/GraphQlPageInfo.java 18
|
|
23f6f3239528e79f76d76a3346d7fb12d63ddf67 src/main/java/dev/caskeleton/pagination/HmacGraphQlCursorCodec.java 181
|
|
63a7fd654978aa438fcec5e1c4b55a01f9c6567c src/test/java/dev/caskeleton/dataloader/GraphQlBatchChunkerTest.java 138
|
|
0b33c80e5ce5ac532ed7461dd6a3425f0af770a3 src/test/java/dev/caskeleton/dataloader/GraphQlBatchContractTest.java 173
|
|
0dd09746bec75fb776964e059185bced76620bf1 src/test/java/dev/caskeleton/dataloader/GraphQlBatchResultMapperTest.java 108
|
|
52c9588c5252a626d3be7fbe7eb62c14017d3298 src/test/java/dev/caskeleton/dataloader/GraphQlDataLoaderRequestRegistryTest.java 104
|
|
fbbc652b7efad15459b1b5c36ef94f8183b5da7e src/test/java/dev/caskeleton/fetch/GraphQlFetchProfileClassifierTest.java 103
|
|
724579fdb808579c41451a1fea8337683725f1fb src/test/java/dev/caskeleton/fetch/GraphQlFetchProfileRegistryTest.java 121
|
|
7c3df3208d7f46c8d75df2df8116c613b61e4ec3 src/test/java/dev/caskeleton/mutation/GraphQlMutationIdempotencyContextTest.java 318
|
|
07354656d622c62d71366a788e4a06d32a1d44ff src/test/java/dev/caskeleton/mutation/GraphQlMutationResultMapperTest.java 107
|
|
4381f766cafeab6eee7b983db625484e1b6eebdc src/test/java/dev/caskeleton/pagination/GraphQlConnectionAssemblerTest.java 147
|
|
b0abe3e6ee08b91d2bf76299edead7c2c09dde58 src/test/java/dev/caskeleton/pagination/GraphQlCursorFixtures.java 61
|
|
bad9cd3284c20a49cf8998b1daa2b8ba3cf8adfa src/test/java/dev/caskeleton/pagination/HmacGraphQlCursorCodecTest.java 251
|
|
file_count=69
|
|
|
|
=== 배선 전수 (autoconf 패키지 참조 / 자기·autoconfigure 제외 main 참조 / test 참조 / LOC) ===
|
|
TYPE autoconf main_other test LOC
|
|
GraphQlBatchChunker 0 2 2 58
|
|
GraphQlBatchContext 0 3 5 45
|
|
GraphQlBatchErrorPolicy 0 1 3 17
|
|
GraphQlBatchExecutor 0 2 2 121
|
|
GraphQlBatchLoadException 0 1 1 29
|
|
GraphQlBatchObservation 0 1 2 41
|
|
GraphQlBatchPolicy 0 4 4 54
|
|
GraphQlBatchPolicyRegistry 4 1 3 70
|
|
GraphQlBatchResult 0 1 2 39
|
|
GraphQlBatchResultMapper 0 1 3 134
|
|
GraphQlBatchTimeoutException 0 2 2 36
|
|
GraphQlBatchValue 0 2 3 62
|
|
GraphQlDataLoaderFactory 4 1 3 61
|
|
GraphQlDataLoaderName 0 6 5 23
|
|
GraphQlDataLoaderRequestRegistry 0 1 1 64
|
|
GraphQlMissingKeyException 0 1 1 24
|
|
GraphQlMissingKeyPolicy 0 2 3 17
|
|
GraphQlFetchProfile 0 2 2 49
|
|
GraphQlFetchProfileClassifier 0 0 1 82
|
|
GraphQlFetchProfileName 0 3 2 23
|
|
GraphQlFetchProfileRegistry 0 0 1 76
|
|
GraphQlFetchProfileRule 0 1 1 37
|
|
GraphQlFetchProfileValidationException 0 3 2 21
|
|
GraphQlSelectionCoordinate 0 1 0 30
|
|
GraphQlSelectionSetView 0 2 1 52
|
|
GraphQlSelectionSignature 0 1 1 33
|
|
GraphQlUnmappedSelectionException 0 1 1 31
|
|
GraphQlConnection 0 1 1 43
|
|
GraphQlConnectionAssembler 0 0 2 108
|
|
GraphQlConnectionException 0 2 1 28
|
|
GraphQlConnectionPolicy 0 0 3 45
|
|
GraphQlConnectionRequest 0 2 2 55
|
|
GraphQlCursorCodec 0 3 1 27
|
|
GraphQlCursorException 0 10 4 30
|
|
GraphQlCursorFraming 0 3 1 67
|
|
GraphQlCursorKeyRing 0 1 2 81
|
|
GraphQlCursorKeyset 0 1 0 54
|
|
GraphQlCursorPayload 0 6 2 123
|
|
GraphQlCursorScope 0 4 1 57
|
|
GraphQlCursorVersion 0 2 1 45
|
|
GraphQlEdge 0 2 1 17
|
|
GraphQlKeysetWindow 0 1 2 39
|
|
GraphQlPageInfo 0 2 1 18
|
|
HmacGraphQlCursorCodec 0 0 4 181
|
|
GraphQlBatchMutationItemResult 0 1 0 28
|
|
GraphQlBusinessResult 0 1 1 55
|
|
GraphQlCanonicalInput 0 1 0 87
|
|
GraphQlExpectedVersion 0 1 1 19
|
|
GraphQlIdempotencyConflictException 0 2 1 32
|
|
GraphQlIdempotencyKey 0 2 1 19
|
|
GraphQlMutationContractException 0 2 2 20
|
|
GraphQlMutationContractValidator 0 0 2 92
|
|
GraphQlMutationCoordinate 0 3 2 21
|
|
GraphQlMutationFingerprint 0 2 1 49
|
|
GraphQlMutationIdempotencyContext 0 2 1 95
|
|
GraphQlMutationIdempotencyInterceptor 0 0 2 77
|
|
GraphQlMutationPayload 0 2 1 43
|
|
GraphQlMutationResultMapper 0 0 1 46
|