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

