Files
document-haness/docs/clean-architecture-backend-template/final/evidence/raw/200-inbound-web-notification-admin-probes.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

79 lines
6.5 KiB
Plaintext

Sub-scope 11 (inbound-web) notification/platform + admin
revision=a24ece9cf797f7ea647e33bf846b115208ed1ba5
generatedAt=2026-08-30T07:44:55+00:00
=== OWNED FILES ===
810d8a12b827bdbf190992d31ce25ef341e77804 main/java/dev/caskeleton/adapter/inbound/web/admin/platform/WebPlatformSnapshot.java 50
1824b36b5004d770d457e4f76b45796cc50b0f16 main/java/dev/caskeleton/adapter/inbound/web/admin/platform/WebPlatformStartupValidator.java 62
669018e7e5ccb0a10609f87fef33b9b7a47b0d13 main/java/dev/caskeleton/adapter/inbound/web/admin/route/RouteInventoryMismatchException.java 18
8865cb3400c5336fb666282703dea2206affda10 main/java/dev/caskeleton/adapter/inbound/web/admin/route/SpringMvcRouteInventoryCollector.java 138
da2bb43f1fd04d27eb7de00d2e0ce8f58190e334 main/java/dev/caskeleton/adapter/inbound/web/admin/route/WebRouteContract.java 69
84f36600b89d6a8b31623b4a0be98d97de5335f8 main/java/dev/caskeleton/adapter/inbound/web/admin/route/WebRouteInventory.java 104
74a10d7ceea4714dbe79bb4eb512ad649be96936 main/java/dev/caskeleton/adapter/inbound/web/notification/platform/callback/CallbackMvcSecurityConfiguration.java 38
d018e426c24c6e24f1b9a42fe1ceaa71d0a797c7 main/java/dev/caskeleton/adapter/inbound/web/notification/platform/callback/CallbackRequestConfiguration.java 65
19b1292a48a08da5104f3516a44fa32ac8edc8cb main/java/dev/caskeleton/adapter/inbound/web/notification/platform/callback/CallbackRequestFactory.java 75
c59a022a41d8a9f3b963de3f2e0787d61f9c94ba main/java/dev/caskeleton/adapter/inbound/web/notification/platform/callback/ExternalRequestUrlResolver.java 71
b984dd2c6c416ef0ab8d0df4b40034369287afe3 main/java/dev/caskeleton/adapter/inbound/web/notification/platform/callback/NotificationCallbackMvcController.java 99
f62c1744c3a0898a0560eff85809aec2dcf0fc0c main/java/dev/caskeleton/adapter/inbound/web/notification/platform/callback/reactive/BoundedCallbackBodyReader.java 48
248dbbda8aa92cea0d6d15eae1949535daecbd7f main/java/dev/caskeleton/adapter/inbound/web/notification/platform/callback/reactive/CallbackWebFluxConfiguration.java 58
cdabab9d84cf1e12b486c8b3149f8f8f0e5e9ddc main/java/dev/caskeleton/adapter/inbound/web/notification/platform/callback/reactive/CallbackWebFluxRouter.java 30
1afeb25f97b10de07d77e4606b76edd367c985c1 main/java/dev/caskeleton/adapter/inbound/web/notification/platform/callback/reactive/NotificationCallbackWebFluxHandler.java 85
04c5100528396db77917a46bfd26f6c8ea8f7825 main/java/dev/caskeleton/adapter/inbound/web/notification/platform/submission/NotificationSubmissionController.java 130
30ef1f7885c78683fb1d0233978850cbfb4ce9cb main/java/dev/caskeleton/adapter/inbound/web/notification/platform/submission/NotificationTemplateController.java 134
43737af744930e5333d65d60bacc7d671e061708 main/java/dev/caskeleton/adapter/inbound/web/notification/platform/submission/NotificationVariableCoercion.java 77
55178a88eb5dbdbb481b9a507a306e707ed0fd13 main/java/dev/caskeleton/adapter/inbound/web/notification/platform/submission/PublishTemplateHttpRequest.java 33
1e4118d961143ce6ce2e2c866a67255d6020758a main/java/dev/caskeleton/adapter/inbound/web/notification/platform/submission/PublishTemplateHttpResponse.java 41
cfd8ea2b41dfa879df9013a8d6b031294a81c60e main/java/dev/caskeleton/adapter/inbound/web/notification/platform/submission/SubmitNotificationHttpRequest.java 39
9bbc65a3f26993a3bbc47e561b837a4ef686e85f main/java/dev/caskeleton/adapter/inbound/web/notification/platform/submission/SubmitNotificationHttpResponse.java 34
409278c82669ab629c8cbc38396bbbfc91bfdd9d test/java/dev/caskeleton/adapter/inbound/web/admin/platform/WebPlatformStartupValidatorTest.java 139
d5bad59c145160b374977f38deee59d524b484e6 test/java/dev/caskeleton/adapter/inbound/web/admin/route/WebRouteInventoryTest.java 135
3164cd299ce28007aae349a871df05707359d7d6 test/java/dev/caskeleton/adapter/inbound/web/notification/platform/callback/CallbackRequestConfigurationTest.java 70
be054fd58e13b517780a597f0ff45deb8823480e test/java/dev/caskeleton/adapter/inbound/web/notification/platform/callback/NotificationCallbackMvcControllerTest.java 361
file_count=26
=== 8.1 admin 여섯 파일의 참조 ===
SpringMvcRouteInventoryCollector
WebPlatformStartupValidator 6 ./test
WebRouteInventory 2 ./main 8 ./test
WebPlatformSnapshot 1 ./main 3 ./test
WebRouteContract 7 ./main 3 ./test
RouteInventoryMismatchException 6 ./main 3 ./test
$ grep -rn 'SpringMvcRouteInventoryCollector' --include=*.java . | sed 's|adapter/inbound/web/src/||'
./main/java/dev/caskeleton/adapter/inbound/web/admin/route/SpringMvcRouteInventoryCollector.java:27:public final class SpringMvcRouteInventoryCollector {
./main/java/dev/caskeleton/adapter/inbound/web/admin/route/SpringMvcRouteInventoryCollector.java:36: public SpringMvcRouteInventoryCollector(ApiDeprecationPolicy deprecationPolicy) {
exit=0
=== 8.2 두 시작 검증의 호출 여부 ===
$ grep -rn 'attestMapping\|WebPlatformStartupValidator' --include=*.java app-bootstrap/src/main | wc -l
1
exit=0
$ grep -rn 'attestMapping' --include=*.java app-bootstrap/src/main | sed 's|app-bootstrap/src/main/java/dev/caskeleton/bootstrap/|BOOT:|'
BOOT:autoconfigure/fileserver/FileserverStartupConfiguration.java:87: return uriMapper.attestMapping();
exit=0
=== 8.3/8.4 notification 게이트와 의존 공급 ===
$ grep -rh 'prefix = "' --include=*.java adapter/inbound/web/src/main/java/dev/caskeleton/adapter/inbound/web/notification | sort -u
prefix = "ca-skeleton.notification.platform",
prefix = "ca-skeleton.notification.platform.callbacks",
exit=0
$ grep -rn 'ca-skeleton.notification.platform' --include=*.yml --include=*.yaml . | wc -l
2
exit=0
$ grep -n 'ConditionalOnMissingBean' adapter/inbound/web/src/main/java/dev/caskeleton/adapter/inbound/web/notification/platform/callback/CallbackRequestConfiguration.java
6:import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
45: @ConditionalOnMissingBean(ExternalRequestUrlResolver.class)
60: @ConditionalOnMissingBean(CallbackRequestFactory.class)
exit=0
$ grep -n 'trusted-proxies' -B 2 -A 2 adapter/inbound/web/src/main/java/dev/caskeleton/adapter/inbound/web/notification/platform/callback/CallbackRequestConfiguration.java
45- @ConditionalOnMissingBean(ExternalRequestUrlResolver.class)
46- public ExternalRequestUrlResolver externalRequestUrlResolver(
47: @Value("${ca-skeleton.notification.platform.callbacks.trusted-proxies:}")
48- Set<String> trustedProxies) {
49- return new ExternalRequestUrlResolver(trustedProxies);
exit=0