# 팩토리의 javadoc 이 자기가 무엇을 고치려고 만들어졌는지 적는다 * The one place the typed profile becomes the settings the driver is built from (MNG-INT-002). * *
The profile, the credential resolver, the TLS and Stable-API flags and the pool and timeout * policy all existed and were all unit-tested. None of them reached a {@link MongoClientSettings}: * the values were checked as intermediate objects and whatever the driver ended up configured with * was decided elsewhere, by defaults nobody had chosen. A policy that nothing applies reads exactly * like a policy that is applied — the tests pass, the record is populated, and the client connects * with a three-second timeout it inherited from the driver rather than the two the profile states. # 저장소 전체에서 그 타입과 자격증명 해석기를 언급하는 곳 ./docs/reviews/2026-08-14-mongodb-module-code-review.md:688:1. `MongoCredentialResolver` port는 secret reference만 받고 value는 client factory의 최소 scope에서만 ./docs/superpowers/plans/evidence/2026-08-15-wave6-final/task6-p0-reconciliation.md:144:nowhere. It is mapped — `MongoClientSettingsFactory` calls `.uuidRepresentation(...)`. Verified ./docs/architecture/mongo-api-surface.txt:172:dev.caskeleton.adapter.outbound.mongo.client.MongoClientSettingsFactory ./docs/architecture/mongo-api-surface.txt:322:dev.caskeleton.adapter.outbound.mongo.security.MongoCredentialResolver CLAUDE.md:106:`secret://` reference and `MongoCredentialResolver` is the only thing that turns one into a # 프로파일 검증이 production 에 요구하는 것 if (production && !tlsRequired) { throw MongoOperationRejectedException.of( "config.tls", "a production MongoDB profile requires TLS; the flag existed and nothing checked it, so a" + " deployment could carry tls-required=false and still be called production"); } # 그 검증이 켜지려면 무엇이 있어야 하나 return () -> { if (properties.profiles().isEmpty()) { return; } if (probe.getIfAvailable() == null) { throw new IllegalStateException( "the Mongo platform has configured profiles but no MongoTopologyProbe bean, so the " + "startup validator has nothing to ask about the server: supply a probe built from " + "the live data-plane client, or remove the platform profiles. Starting without one " + "means the topology, the Stable API level and the credential's real capabilities " + "are checked by nothing — silently, because the check was conditioned on the very " + "bean whose absence it should report."); } # 출하 설정이 이 모듈 아래 노출하는 키 365: persistence-mongo: 367- enabled: ${APP_PERSISTENCE_MONGO_ENABLED:false} 370- active-profile: ${APP_PERSISTENCE_MONGO_ACTIVE_PROFILE:} # platform.profiles 를 넣는 곳 전수 : 0 # 이 리프가 이미 쓰는 배선 수단 34- /** The customizer Boot applies when it builds the client. */ 35- @Bean 36- @ConditionalOnBean(MeterRegistry.class) 37- @ConditionalOnMissingBean(name = "mongoDriverObservabilityCustomizer") 38: public MongoClientSettingsBuilderCustomizer mongoDriverObservabilityCustomizer( # 프로덕션에서 그 수단을 등록하는 곳 전수 : 1 # 이 경계를 보는 시험이 있는가 /** * The typed profile reaches the settings the driver is actually built from (MNG-INT-002). * *
The profile, the credential resolver, the TLS and Stable-API flags and the pool and timeout * policy all existed and were all unit-tested. None of them was connected to a {@code * MongoClientSettings}: the values were checked as intermediate objects, and whatever the driver * ended up configured with was decided elsewhere. A policy that nothing applies is a policy that * reads as applied. * # TLS 레인 시험이 쓰는 클라이언트 security/MongoTlsLaneTest.java-135- MongoClientSettings.builder() security/MongoTlsLaneTest.java-136- .applyConnectionString(new ConnectionString(connectionString)) security/MongoTlsLaneTest.java:137: .applyToSslSettings(ssl -> ssl.enabled(true).context(trustOnly(authorityPem)))