백업 확인 작업 - DB-scoped 백업, MinIO 지역 us-west-ca-s-1, EXTERNALIOIMPLICITACCESS 부트 스트랩
노드 구성: 문서 k1m1 forgejo-runner config (--add-host for submodule DNS)
K1m1의 작업 컨테이너는 공공 DNS로 돌아갑니다, 그래서 함대-swept http://k1m1:3000 .gitmodules URL은 클론에 실패합니다. 작업에 핀 k1m1 container.options를 통해 컨테이너 --add-host (암호 서비스 CI 2026-06-12).
노드 구성: 문서 k1m1 도커 데몬 insecure-registries
K1m1 forgejo-runner의 빌드는 HTTP Forgejo 레지스트리로 밀어; the daemon.json만 배송 :5000 항목, 그래서 모든 빌드 작업 착륙 k1m1에서 HTTPS-to-HTTP 오류 (2026-06-12)로 도커 로그인이 실패했습니다. Desired 상태는...
로키 6.x SingleBinary는 0개의 확장 가능한 표적을 필요로 합니다; localhost (cert SANs)를 통해 crdb 실행
Kamo-universe namespace+quota+valkey, CockroachDB 백업, 관찰성 스택
- 우주 /: 네임스페이스 + ResourceQuota, valkey-universe (AOF, hostPath k1m1), nightly CockroachDB 백업 CronJob, 연산자 부트 스트랩 스크립트 - 모니터링/: 핀 helm 값 *********** 스크립트를 설치, gr...
LAN을 통해 k3m1과 공유된 두 노드 클러스터에 가입하십시오. 계정 고립
LAN 노선에 대한 전체 WireGuard 경로 (10.8.x.x) (192.168.4.22 <-> 192.168.4.36 : 6222) 경로 URL에 내장 된 주름. 클러스터를 kamo-ratestack-nats (Pricetack/k3m1)와 공유. 다중 계정 고립: kamo 고객 ...
K3m1 노드 + 클러스터를 LAN IP로 추가
- statefulset: 192.168.4.x (k1m1=.22, k3m1=.36) 이상 광고/조인; WireGuard 떨어졌다 (k3m1 wg0 10.8.0.1 k0m1의 광고 IP). - init-job + CI kubeconfig 엔드포인트는 LAN IP로 이동했습니다. - CI...
로그인 후 체크 아웃하는 노선 유료 가입
성공적인 우 (수직 또는 자동 로그인) 후, apex-domain을 소비 sp checkout plan 쿠키는 kamo-register에 의해 왼쪽 및 구매자를 리디렉션 상표 /subscribe?plan= 페이지(Stripe checkout) 대신 기본 앱 여행 정보 One-shot :...
유료 ?참고에서 체크인로 계획
회원 가입이 유료 가격 CTA (?plan=pro|사업)에서 시작될 때, apex-domain sp checkout plan 쿠키를 완료하십시오. kamo-login 소모 사용자 인증 후 /subscribe -> 스트립, 등록 -> 확인 -> 로그인 hops.
와이어 내부의 비밀 ***
ESigService는 이제 동일한 공유 비밀에 대한 X-Internal-Auth를 검증합니다. APIService 선물 ***********에서 *** k8s 비밀), programmatic e-sign 강화 내부 API (무선이 없을 때 실패).
Kamo-shared-library 업데이트에 대한 재건 (esign signer 이메일 템플릿)
새로운 canonical 템플릿 esign.signer verification +를 선택합니다. esign.signer invite 그래서 SeedForOrg는 첫 번째 전송에 씨앗을 수 있습니다.
Canonical e-sign Signer 템플릿 (verification + 초대)
Org 당 lazily 씨를 뿌린 2개의 플랫폼 넓은 canonical 이메일 템플렛을 추가하십시오: - esign.signer verification (단계 업 OTP: {{code}}, {{name}}) - esign.signer invite (신호: {{name}}, {{sende...
미터 제출 콩에 대한 esign 저장소 등록
EsignMeterSubmissionService는 EsignUsageRecordRepository를 필요로 합니다. @EnableJpaRepositories는 com.kamo.z.shared.esign.repos를 검사하지 않았으므로 컨텍스트 시작하기 패키지 추가 (이제는 @Entit...
E-sign 사용법 미터로 재기 + 소비자 셀프 서비스 체크 아웃
#4 미터링: - EsignMeterSubmissionService (@Scheduled daily) : API-origin의 집계 EsignUsageRecords per org+period; 처음 40/period 포함, 나머지 제출 Stripe MeterEvents로. 보고를 통해 ...
Expose API SIGNATURE (E-Signature API) 주요 범위
Org API 키 관리자에 E-Signature API 범위를 추가하므로 직원은 보조할 수 있습니다. Business orgs programmatic e-sign 액세스. 매달 포함되는 사용법 할당은 서명 당 미터로 설정됩니다.
Public programmatic e-sign API 게이트웨이 (API SIGNATURE 범위)
/api/public/esign/**를 PublicApiController에 추가하십시오: org API 키를 유효하게 합니다. API SIGNATURE 범위, 속도 제한이 필요하며 ESigService의 기대 X-Internal-Auth + X-Org-Id를 가진 내부 봉투 API (...
내부 programmatic envelope API (origin=API) 비즈니스
- EsignInternalController (/api/esig/internal/*): X-Internal-Auth + X-Org-Id APIService가 API SIGNATURE-scoped 키를 유효하게 한 후 authed; EsignEnvelopeService, 태그 봉투 Es...
API SIGNATURE api 키 범위 + EsignGenericEnvelope.origin
첨가물, 버전 범프 없음: - ApiKeyScope.API SIGNATURE - programmatic e-signature API (비즈니스) 게이트 - EsignGenericEnvelope.origin (EsignUsageOrigin, nullable) - 기록 여부 envelope...
Send-for-signature action + 문서 편집기의 봉투 상태
'Send for Signature' 버튼을 템플릿 편집기 헤더에 추가하여 엽니다. 수신자 및 추적 서명 상태에 문서를 보내려면 대화 상자 새로운 ESigService /api/esig/envelopes 엔진. - 프록시 경로 (OTK via generateOTK, 템플릿 프록시 미러...
일반 봉투 create/send 엔진 (sender side)
OTK-authed /api/esig/envelopes API kamo-internal 드라이브 추가 서명을 위한 문서, 같은 공유 lib entities를 재사용 signing API reads — 첨가제, org-agnostic 교체 대 한 대출- 커플 KamoLOS/EsignCli...
Sign.sign.pink를 위한 공개 서명 API 엔진
/api/esig/public/* 서명 API kamo-signer 앱 호출 구현 미리보기-stub에서 작업 백엔드로 실시간 서명을 전환합니다. - 유효성(recipient token -> Signer session), 세션, 동의, stepup/start+verify (이메일 OTP...
Back metered add-on 가격과 빌링 미터
Stripe (>= 2025-03-31.basil)는 레거시 use type+scalee usage를 거부합니다. 미터로 재는 모형 (미터 가격은 미터에 의해 역행되어야 합니다), 그래서 USAGE BASED add-on 가격 생성 실패 — 사용 기반 청구를 끊기 (예 : sign.pi...
조직 탭의 플랫폼 제품 toggle
Surface the platform-product designation where it 속하는 — 플랫폼 → 회사연혁 org 당 게이트 스위치 추가 (최고 수준의 org에 대한 사용), 제목 효과 설명 확인 대화 상자, '플랫폼 제품' Chip, no-catalog 경고, 낙관적인 업...
Platform → Orgs에서 Organization.isPlatformProduct 관리
PlatformAccountSummary 노출 isPlatformProduct + hasSubscription 시장; 새로운 퓨트 **************** (platform-admin 게이트) 플래그를 설정하고 org의 회원의 제목을 유효화 (their products) 뿌리, 따...
Explicit Organization.isPlatformProduct는 entitlement 뿌리 신호로
'SUBSCRIPTION Market'을 명시적으로 대체합니다. admin-set 소유권 플래그. 플랫폼 제품 (예 : sign.pink)은 흰색 라벨입니다. 플랫폼은 작동하며 자체 제목 루트입니다. 고객 org — 자체 SUBSCRIPTION 시장을 실행하여 고객에게 재판매할 수 있습...
플랫폼 설정을위한 SUBSCRIPTION 시장을 선택하십시오
KamoCRM은 여러 시장을 소유합니다. *********** 그래서 resolveProductMarket는 SUBSCRIPTION-type (platform-access) 시장을 선택해야 합니다. 오히려 첫번째 활동적인 것 보다는. 레거시 KamoCRM-titled-market 유지 ...
제품 루트 = 자체 SUBSCRIPTION 시장, 어떤 시장
고객 org (e.g. BluEleven)는 OWN 비즈니스 시장을 소유합니다 (RETAIL/MORTGAGE) KamoCRM 플랫폼의 고객 남아있는 동안 회사를 실행하기 위해 - 그것의 회원은 KamoCRM을받을 수 없으며 자신의 뿌리가되지 않습니다. 이전 다음 'owns any act...
범위 회원은 제품 루트에 제목, KamoCRM하지
EntitlementService는 이제 각 회원의 제목 루트를 통해 해결합니다. EntitlementRootResolver (가장 큰 시장 소유 조상 또는 자체) 대신 최고 수준의 org로 걸어. 무료 층 및 제품 액세스 플래그 그 루트에서 파생, 그리고 isKamoCrmSubscri...
Resolve entitlements by products-root org, 플랫폼 상단 레벨
EntitlementRootResolver 소개: 가장 가까운 시장 점유율을 차지하는 org (its 제품 루트)의, 플랫폼 상단 레벨로 다시 떨어지. 으로 decouples *who pays*에서 *who pays* (market/plan owner)를받을 자격이있는 제품 (지불 계정...
배경 refetch에 org 목록을 유지; dedupe 세션 호출
/network re-fired fetchNetworks on 모든 배경 세션 새로 고침 및 모든 fetch 오류에 전체 목록을 숨겨, 그래서 transient blip 또는 stale hasPlatformAdminAccess (wrong-endpoint 403)는 사용자의 떨어질 수 ...
Envelope 수신자, 필드 값, 수신자 상태 entities 추가
EsignEnvelopeRecipient (+repo)에서 확인, EsignFieldValue (+repo), EsignRecipientStatus 및 ESignerType 업데이트. 첨가물; 버전 범프 없음.
EsignUsageRecord를 per-signature 사용법 미터로 재기하십시오
새로운 append-only use entity (mirrors AiUsageRecord)는 서명에 방출 완료. API-origin 서명은 매월 플랜을 계산합니다. 할당량 + 초과 (sign.pink 사업: 40/mo 포함, 그 후에 $0.20 각); MANUAL 단일 사용자 서명은 기...
Revert 이메일 링크 클릭 핸들러, isolate 원인
사용자 보고서 이메일 리뷰 링크는 여전히 아무것도하지 않고 텍스트를 클릭 선택은 죽어 죽어. 마우스 오른쪽 버튼과 hover 모두 작동, 그래서 앵커 요소는 intact이고 URL은 유효합니다. 세 가지 시도 클릭 (window.open, useEffect target= blank, 캡...
보존 종횡비, 결코 뻗지 않는 로고
Favicon PNG/ICO 프레임은 keepAspectRatio(false), 기지개 왜곡된 사각에 비 사각 로고. Center-fit 로고 투명 사각형 캔버스 대신, 예비 종횡비, 그래서 favicons 보기 사각형 소스 이미지를 필요로하지 않고 업로드 된 로고 모양에 대한 올바른.
레테르를 붙이는 득점방해에 재생산 favicons; sniff 진짜 로고 유형
offerUpdate (모든 사용자 정의 라벨링에 실행)는 config/css/manifest를 썼습니다. 하지만 결코 재생 favicons – 그만 프로듀서에 의해 생산 되었다. 이름 * org는 전체 규정없이 씨앗이 빈 favicon / 설정, 그래서 모든 Kamo 사이트 (logi...
Org 폴더가 부족할 때 템플릿의 Seed globals.css
프로비저닝 (모든 색상 저장에서 실행) org의 css/globals.css를 다시 그 객체는 한 번만 제공 전체에서 그것을 copied 기본 템플릿. org는 단지 config+logos로 종종했다, 그래서 다운로드 threw NoSuchKey 및 org의 globals.css - 모...
그것의 진짜 연장을 가진 가득 차있는 로고, hardcoded .svg를 보여주십시오
브랜딩 탭 내장 로고FullUrl 마운트에 로고 full.svg, ignoring org의 로고FullExt. png/jpg/etc로 업로드된 전체 로고 로고 전체.{ext} in MinIO, 그래서 .svg URL 404'd 및 렌더링 된 이미지 ( 로고는 실제로 저장되었습니다). L...
새로 발행된 certs가 TLSStore를 새로 출시했습니다
update tls store() ran at start and on shared-storage imports, 그래서 cert-manager (HTTP-01)가 신선하게 발행 한 cert는 tls-* secret로 준비되었습니다. 하지만 다음 자동 종료까지 TLSStore에 추가하지 ...
리디렉트로만 루트를 backend so Traefik v3를 사용하면
Traefik v3는 IngressRoute 라우터를 서비스로 비활성화합니다. [] 언제 allowEmptyServices는 (이러한대로), 그래서 도메인 aagnostic HTTP->HTTPS 리디렉션 라우터는 "disabled" (서비스가 존재하지 않습니다) 그리고 포트 80 여전히...
모든 HTTP 호스트를 HTTPS + 게이트 auto-cert로 이동 org 도메인
Custom org 도메인(예: login.sign.pink)은 Traefik의 bare를 반환합니다. 일반 HTTP에 "404 페이지": 유일한 port-80 리디렉션 라우터 *.kamocrm.com 및 ***********에 하드 코딩 배포 작업 흐름에 의해 적용되지 않았으므로 클러...
Pre-seed sign.pink + STATIC DOMAINS에 있는 www.sign.pink
sign.pink는 새로운 apex 도메인입니다 (소비자 e-signature 상표/백색 상표 카모 테넌트 org). Pre-seed apex + www 그래서 Let's Encrypt cert는 이전에 존재합니다. 첫번째 HTTPS 소통량; *.sign.pink subdomains는 ...
Persist conversion error 대신 침묵의 실패
템플릿과 일반 업로드 변환 파이프라인 모두 삼키는 Docs 변환 실패 (로그인 전용), 떠나 is converted=false없이 기록 이유 - 그래서 doc 관리자는 "Document not transform"을 보여주었다. Docs의 변환 할 때 모든 doc. 이제 실패 이유는 Im...
Docker pruner 단계에서 npm을 통해 터보 설치; 핀 pnpm; .dockerignore 추가
Pruner 단계 ran `pnpm 추가 -g 터보` 전에 어떤 package.json 존재, 그래서 corepack grabbed pnpm 11 and failed with "global bin directory /pnpm/bin not in in 파스". `npm install -g...
새로운 monorepo + 모바일 최초 e-signature signing 앱
Turborepo + pnpm 작업 공간 모노레포 하우징 재사용 가능한 e-sign 패키지 kamo-internal plus new, ultra-polished kamo-signer 응용 프로그램에서 추출 - 두 번째 파티 서명 경험 (인터/오스트링 측면은 kamo 내부). 포장: -...
Full-width Enterprise는 실시간 미리보기를 다시 작성합니다
LoanProductForm은 단일 좁은 열 (maxWidth : 880) 하드 코딩 한국어. 이제 같은 엔터프라이즈 패턴을 제공합니다. 모델 번호: - 빵 부스러기, 뒤 화살표, 종류 배지가있는 Full-width gradient 헤더 - lg+에 2 열 그리드 (6fr/6fr), ...