시험 기한 (comp supersedes trial)를 준수
GrantCompSubscription의 기존 구독 업데이트 경로에서 설정 TrialExpiresAt to null 그래서 이전 평가 org는 깨끗하게 컴파일 lingering 재판 expiry 타임스탬프 없음.
커밋 엔드포인트(Data loss)를 통한 백그라운드 주문
지금 단계 새로운 업로드를 수신, 다음 전체 원하는 주문을 커밋 (existing-by-srcIndex 또는 new-by-token) 그래서 기존 이미지가 다시 정렬됩니다 대신 떨어졌다. Backend는 authoritative imageBgCount를 설정합니다.
Cross-org 배경 이미지 누출을 멈추십시오; 순서 안전한 reorder + staging 물통
새로운 파일을 새로운 인덱스로 다시로드 할 수 있습니다. 기존 이미지 및 imageBgCount가 unpopulated 슬롯을 주장; 제공 그런 다음 공개 키에 residual (cross-org) 객체 sat를 제공. - 프로비저닝은 이미지가 스테이지가 없을 때 카운트된 슬롯의 st...
빈 몸에 200 대신 누락 된 org에 대한 404 반환
getOrganizationById는 HTTP로 직렬화 된 베어 null을 반환 빈 몸에 200; 클라이언트는 response.json () 그 후에 threw를 부르 JSON 입력의 유효성 검사 찾을 때 적절한 404을 반환합니다.
지도 누락된 org (404 또는 빈 몸)에서 null 페이로드
SecurityService 변경을 가진 쌍은 이제 누락 된 404을 반환합니다. 200-with-empty-body 대신 org. Callers 이미 null 체크 org, 그래서 적절한 404과 레거시 빈-200은 깨끗한 null로 붕괴합니다.
System User가 org의 적용모델을 해결하자
OrgId != 세션 org와 콜러에 403을 반환 크로스 오르 게이트 대상 org의 회원 행이 없었다. 플랫폼 전체 시스템 사용자 운영 모든 org를 가로지르기 때문에 해결된 사용자가 될 때 회원 확인을 우회합니다. 시스템 사용자.
콘솔을 홍수하는 spurious 오류
- org/[id] 프록시: 백엔드는 null orgs의 빈 몸으로 200을 반환합니다. response.json() threw ' JSON 입력의 유효성' -> spurious 500. Parse defensively와 return null (callers 이미 null 체크). - ...
CreateMetadata의 org 탭 제목을 플립 중지
Static metadata.title는 'Kamo' 서버 측을 렌더링했습니다; 다음 후에 재 흡수했습니다. hydration, overriding DynamicMetaLoader의 클라이언트 업데이트 및 탭을 플립 org 이름에서 'Kamo'로 돌아갑니다. org 이름 서버 측을 해결...
Myself 회원 ID가 해결될 때까지 대기열
ag-grid는 로드 오버레이의 밑에 rowData를 렌더링합니다. load prop은 여전히 getMemberId()가 0이었다 동안 모든 리드를 깜박였습니다. 블랑 myself default가 실제로 필터를 필터링 할 때까지 행 및 유지.
부하에 Myself에 기본 필터, 단일 시장을위한 시장 바를 숨기고, 도구 모음을 찾습니다
- init에 MYSELF 에 과태 agentFilter + userInfo 부하에 게이트 그리드 그래서 더 이상 모든 리드를 플래시하지 - 단 하나 시장: 자동 선택하고 공간을 conserve에 시장 구멍 줄을 숨깁니다 - 필터 행에 빠른 검색 이동 (right); 리드 크레딧 ...
URI-encode WOPISrc + 모든 api.* WOPI 호스트 (다층)
비-kamocrm tenant에 대한 doc을 열지 못했습니다. Docs's alias groups만 신뢰할 수 있는 api.kamocrm.com (Docs-deployment) env hardcoded aliasgroup1), 그래서 멀티텐트 WOPISrc 호스트 같은 api.opti...
Correct FPBXCONF heredoc + 우주 스크릴라를 재구성
- freepbx: FPBXCONF 여기에 문서 닫는 delimiter는 indented (8개의 공간); bash는 요구합니다 <<열 0의 WORD delimiters, 그래서 start.sh는 '파일의 끝'과 freepbx로 사망 CrashLoopBackOff'd (340 재시작)....
Canonicalize webhook repo name 에 공공 프로젝트 케이스
클러스터 마이그레이션 후 Forgejo repos가 더 낮은 케이스를 재구성했다. (securityservice), 그러나 역사적인 행 및 공공 프로젝트 필터 사용 canonical 케이싱 (SecurityService). 들어오는 저장소.name을 ingestion에서 예제를 허용하므...
Node-local MinIO + 오류 템플릿 읽기 + ImgDat dedup (에 대한 새 문서를 설정:blank)
새로운 문서 작성 hung ~5 분 및 새로운 탭에 머물:blank. 뿌리 원인: k3m1에 예정된 DocsService pods는 공백 템플렛을 읽습니다 하드코딩된 WireGuard IP 10.8.1.1 (k1m1)의 MinIO는, k3m1 (k1m1<->k3m1 WG 오버레이가 다운...
다중 노드 로고를 통해 favicons 생성, 단일 노드가 존재하지 않는 ()
generateAndUploadFavicons()는 minioService.exists()에 문지릅니다. 현재 MinIO 호스트를 통계합니다. 간단한 로고가 작성되었을 때 (또는 단지 false NoSuchKey를 반환합니다. favicon 생성은 config.json을 떠나, glob...
Re-apply 살고있는 stylesheet 후 브랜딩 저장 그래서 새로운 색상 쇼없이 하드 리로드
DynamicMetaLoader는 org globals.css를 한 번 마운트에 주입하므로 색상 저장 (일반적으로 re-provisions globals.css + bumps themeRevision) 페이지는 이전 유지 --color-* vars 때까지 전체 재부하 - stale 캐시...
Pin kamo traefik에 k1m1; 자동 cert 단일 클러스터
SSL 오류 : kamo Traefik은 외부 IP 192.168.4.22 (k1m1) +가있는 LoadBalancer입니다. externalTrafficPolicy=Local, 그래서 k1m1에서 실행되는 MUST — pod rebalance는 k3m1로 이동, 떠나 192.168.4...
AiPullThroughPolicy 단일 활성 지수의 Null-safe 분할 (doc 09 §8)
CRDB는 NULLs-distinct이므로 단일 (lender profile id, market id) WHERE status='ACTIVE' 인덱스가 아닙니다. org-wide (market id IS NULL) 곡물 - 두 개의 동시 first-publishes는 두 개의 ACTIV...
배포 전략을 재창조하기 위해 NATS 튼튼한 소비자 재창조
DaemonService는 EXCLUSIVE JetStream 튼튼한 소비자 (daemon-sync-trigger, *************** [ §2.8 위반 루프], daemon-recording-received) @PostRetry없이 수정합니다. RollingUpdate의 밑에...
Enable OutboxRelay @Scheduled 백스톱 + @Async 뜨거운 경로
DaemonService는 MLOS 거래 아웃 박스(mlos.outbox.enabled)을 활성화하고 이벤트 생성 (지정 타이머 breach 이미터), 하지만 부족 @EnableScheduling/@EnableAsync — 그래서 공유lib OutboxRelay의 @Scheduled 스...
Com.kamo.z.shared.mlos.event 저장소 (OutboxWriter dep)
Mlos.outbox 활성화 아웃 박스Writer, 필요한 MlosOutboxEventRepository (+ ProcessedEvent /DeadLetter) com.kamo.z.shared.mlos.event - @EnableJpaRepositories에 패키지를 추가합니다. 수정하...
PublishAck는 io.nats.client.api, io.nats.client에 있습니다
Shared-lib 컴파일을 끊는 테스트 전용 수입 수정 (현재 필수 로컬 mvn 설치에 의해 잡힌). Main code는 unaffected (OutboxRelay는 PublishAck 반환을 무시합니다).
Indent heredoc body 그래서 start.sh configmap은 YAML을 유효합니다
Start.sh 블록 사기 임베디드 5 쉘 heredocs (rtp.conf, http.conf, SQL block, WebRTC endpoints, freepbx.conf) 그 몸은 열 0에서 sat - 보다 적은 indented 블록 사기, 그래서 YAML은 첫 번째 바디 라인에 사...
K1m1 레지스트리에서 포인트 Docs 배포
Docs-online 이미지 호스트는 bogus *********** (Redis DNS, 절대 레지스트리), 그래서 모든 DocsService 배포 다시 승인 unpullable 이미지. k1m1 레지스트리에서 일치합니다. Docs-fork CI는 이제 이미지를 만들고 밀어줍니다.
페이지는 supersedededt + 도로 없는 수송 세포를 정직하게 반영합니다
서비스 탭은 실제로 수행되는 두 단계에 대한 불완전으로 읽습니다. - edt는 EDT4 (hydro)가 EDT2 기초와 비우는 0% 막대기를 보여주었습니다 파이프라인 omits edt 단계. 이제는 <hydro> (EDT4), 막대기에 의해 초래된, 보여줍니다. - 수송은 4,009의 ...
라이브 heartbeat 타일 수를 표시, stale per-pass 값이 아닌
Progress read status.have first, 초기 'running' 이벤트 세트 0 - 및 `0 ?? count`는 0을 유지하므로 살아있는 카운트는 결코 보여주지 못했습니다 (모든 EDT를 비난하는 수력) 타일). 에이전트의 심박수 스냅 샷 카운트를 Prefer (ref...
설정 슬라이드 아웃에 우주를 추가 (NavPri)
우주 페이지는 설정 착륙 카드에 등록되었지만 SettingsStatusWindow 슬라이드 아웃은 NavPri가 실제로 열립니다. 기본 nav의 플랫폼 관리 아래. 플랫폼으로 추가 행정 sub-item (루트 + 상표), 일치 일반적인/Organizations/etc..
/user-info의 GD (god eligibility) 노출
세션은 GD 플래그 (KSessionService)를 저장하지만 /user-info는 결코 반환하지 않습니다. 그것은, 그래서 kamo-universe의 KamoIdentity 항상 deserialized is god=false와 god/dev quick-jump (SkyWorld) o...
거래 NoReply를 저장하지 마십시오
NoReply는 mailbox가없는 send-only 주소이지만, 모든 거래 여전히 IMAP append를 Sent 폴더에 보내면 noisy를 생성 각 전송에 AUTHENTICATIONFAILED 경고. saveToSent 플래그 추가 EmailSmtpService.send (실제 ma...
Case-insensitive 이메일 조회 그래서 재설정 이메일 보내기
비밀번호 복구는 입력하지만 findByEmailEmail은 저장된 이메일 (예 : Sage@KamoCRM.com)에 대한 케이스 감지 일치, 그래서 사용자는 결코 발견되지 않았고 재설정 이메일이 전송되지 않았습니다. 모두 전환 4 복구 조회 (이메일 개시, 질문 fetch/verify,...
SecurityService 내부 DNS에 프록시 암호 재설정
/api/recover 프록시는 api.kamocrm.com에 기본적으로, Traefik 경로 APIService (Remote Controller 없음) → 404 → "Something이 잘못되었습니다" /reset-password. SecurityService는 이러한 엔드포인트를...
Dovecot maildirs를 로컬 경로 PVC로 이동 (rclone/MinIO FUSE)
Maildirs는 hostPath /mnt/shared-files/email/mail에 있었습니다 — rclone FUSE 산 maildir를 안전하게 호스트할 수 없는 MinIO 객체 저장소에 의해 백업됨(atomic no atomic 이름, 파일 잠금 없음, fsync 내구성 없음....
Rclone/MinIO FUSE 대신에 국부적으로 환원 PVC에 MySQL datadir를 두십시오
Mail MySQL datadir (과 maildirs)는 hostPath /mnt/shared-files에 있었습니다. rclone FUSE 마운트는 MinIO 객체 저장소에 의해 백업, 이는 크게 또는 지속적으로 InnoDB datadir를 호스트합니다. 2026-06-13에 마운트...
Mailbox 목록 API 반환 UI 모양 ****************
GET /api/email/mailboxes는 raw entity (providerStatus, lastSyncedAt를 반환합니다. 회원 수 없음. 설정 UI는 ***********를 읽습니다. 상태는 항상 정의되지 않았고 모든 mailbox는 "pending"으로 렌더링되었습니다. ...
Org jumps를 통해 impersonation 감사 트레일
콜러가 이미 임의 세션이 될 때 (신 관리자는 행동 /network에서 다른 org에 들어가는 SUDO MEMBER ID를 나르는 또 다른 회원 sudo id없이 새로운 세션을 축소 - 정말 운전을 잃었다. Default sudoMember이 호출자 세션의 기존 SUDO MEMBER ...
Read + send-as에 대한 권한 기반 mailbox 액세스 권한을 부여
resolveForMailbox는 직접 MemberMailbox 할당을 통해만 액세스 권한을 부여합니다. 이렇게 mailboxes는 ***********를 통해서 지상에 놓았습니다 권리 threw NoSuchElementException -> "메시지로드" -********** 자주하...
