조직이 세 개의 리본을 말하자, 탭 아이콘을 소유
PaneRibbon의 루트 맵은 정확히 그대로 유지하고 fallback 층 : "/", "/member"및 "/team"의 각각은이 사이트 선박을 단어로 설정 설정 키와 함께 조직에서 무시할 수 있습니다. 자주 묻는 질문 지도는 여전히 모든 리본을 가져옵니다 — /sorry, /logo...
추천 코드가없는 도착했을 때 최소 방문자 ID
RegisterFlow는 이미 `?discount=`를 읽습니다. 마케팅 미들웨어를 통과하지 않고 - 코드가 과거에 광고, 이메일 또는 QR 코드, 또는 크로스 apex 쿠키를 할 수 없습니다 이름 * 그것은 wasted: SecurityService는 attribution 사건을 간행...
로그인 링크를 광고
이미 커리어 보드에 적용한 사람들의 자부심은 계정과 그것을 발견만 여기에. "Sign in" 링크를 지금 광고로 운반 에 도착, 그래서 기호에서 그것을 기록 할 수 있습니다 작업 공간은 그것을 열 수 있습니다 신청 양식. `loginUrl`의 SEPARATE 값, deliberatel...
전체적인 pane를 서리하고, 표면에 유리로 돌아갑니다
Pane는 opaque 흰색 카드이었다. 지금 유리의 시트입니다, 두 곳에서 그것은 다른 일을한다. .kamo-pane 자체는 약간 반투명, 그래서 단계를 통해 색깔 상승 해당 콘텐츠가 포함되지 않는 모든 경로의 카드 — /sorry, /org, /logout. 맹세로 맹세하다: pa...
1개의 표면, 수준 계기 단계 가로장 및 크롬 10ant 색깔
/team와 /member 스크린은 유리제 겹쳐 쌓이는의 2개의 근사한 석판이었습니다 틈새, 기본 회색의 MUI 스테퍼, 그리고 진행 pill Floating 헤더 안에. 주어진 의미의 모든 것은 혼자 크기로 수행되었습니다. 머리와 마법사는 이제 한 표면입니다. 분리되는 선은 진행 지...
계정에 대한 적용을 실시
커리어 보드는 /team?jobId=<uid>에 후보를 보냅니다. 그 uid는 이전의 apex 쿠키, 하지만 지금 제출에 다시 읽고 전송 applyJobId로 등록 몸, 그래서 SecurityService는 새로운에 그것을 쓸 수 있습니다 팀 구성원으로 최근AppliedForId. 쿠...
동일한 pane에 있는 각 스크린을, per-step 리본의 밑에 앉으십시오
항구 kamo-login의 포탄: 지금 각 노선은 .kamo-pane, 카드 안쪽에 삽니다 브라우저 가장자리에서 15px, 14px 반경, 부드러운 그림자 및 overflow:숨겨진. 기하학은 목적에 verbatim를 복사한다 — 두 개의 제품 한 명의 깔때기와 사용자가 중간 흐름 사이...
에 의해 배포 digest, 태그에 의해
Preceding commit stops `set image` 침묵의 no-op. 이 주장 outcome : 롤아웃 후, 태그는 레지스트리에서 소화로 해결됩니다. 실행된 파드는 그것에 대하여 검사됩니다. 팟이 실행되지 않은 경우 생성, 빌드는 성공보고 대신 실패. 태그는 그 질문에 대...
동일한 커밋의 재건은 아무것도 배포하고 성공을보고
이미지는 커밋 SHA로 태그되어 있으므로 동일한 커밋 생성을 재구성합니다. 동일한 이미지 참조. `kubectl set image` 그런 다음 아무것도 변경, 배포는 결코 터치되지 않습니다, `rollout status`는 즉시 성공 OLD pods, 그리고이 파이프라인은 아무것도 배포...
Resend를 조직하는 서버는
검증 화면의 Resend 버튼은 성공보고 플랫폼 자체를 제외하고 모든 조직에 아무것도. `host`는 이미 proxy 대상이기 때문에 signup 자체의 몸에 타고 하나의 공유 API 호스트와 ingress는 X-Forwarded-Host를 다시 작성합니다. 서버는 다른 요청에서 te...
Rollout-safety 설정은 CI가 실제로 그(것)들을 읽는 곳에 갈 수 있었습니다
kamo-register는 CI가 Deployment inline을 생성하는 플랫폼에서 유일한 서비스입니다. k8s/deployment.yaml를 적용하는 대신이 문서. 두 결과 모두 침묵 : 1. k8s/deployment.yaml는 죽은 부호입니다. 함대 전체 롤아웃 - 안전 작업...
SIGTERM에 배수, 읽기 조사에 응답하고, 2개의 팟을 달립니다
다음 핸들 SIGTERM 와 bare process.exit(143), 그래서 모든 배치 심각 하 게이 포드 비행했다 - 양식 포스트, 서버 작업, 스트림 RSC 페이로드, 업로드. 보이지 않는 경우 마지막으로 milliseconds 요청; 각 푸시에 배포 클러스터에 보이지 않는. s...
Org의 오버레이 색상의 Sign-up 사이트에 로고를 페인트
Org는 kamo-internal에서 "Register Site Logo Overlay"를 선택합니다. 홈 페이지 및 로딩 화면 오버레이. 전체적인 위치를 위한 1개의 조정: 등록 흐름의 각 단계, 조직 및 팀 화면, 완료 화면과 닫히는 위탁 스크린. 그래서 ThemeLogo는 그것을...
지금 비용 15s minReadySeconds에 대한 롤아웃 룸 제공
progressDeadlineSeconds는 60이었다. 롤아웃이 진행되기 전에 쿠버네티스는 실패하고, 이전 커밋은 minReadySeconds의 15를 추가했습니다. 이미지 잡아당기기의 정상에 각 롤아웃 및 앱의 자신의 시동. 혼자 추운 잡아 이제 여행 할 수 그리고 작업이 실패. 6...
이 표현의 CRLF 라인 종료 복원
이전 커밋은 LF로 정상화 된 스크립트로 파일을 다시 변환합니다. 전체 파일 diff는 수십 개의 줄을 만지고 변화합니다. 콘텐츠 변경 없음; 종료 복원 파일은 항상 실제 편집이 검토 할 수 있었다.
롤아웃은 오래된 파드가 행해지는 것
Deploys는 요청을 잡기 위해 아무것도와 함께 각 서비스의 유일한 파드를 대체 비행. 함대에 적용된 3개의 조정: - 프로세스가 SIGTERM을 참조하기 전에 10s를 잠그십시오. 쿠버네티스는 팟을 제거한다. EndpointSlice와 같은 순간에 신호, 그리고 Traefik는 제...
등록 handoff를 통한 애플리케이션 클레임 토큰
후보자는 계정없이 공공 경력 사이트에서 신청할 수 있습니다. 더 보기 응용 프로그램은 그들이 입력 한 이메일 주소에 저장, 및 영수증 단일 사용 주장 토큰을 운반하여 계정을 만들 이후. 그 계정이 여기에 생성되고 등록은 다른 호스트에 종료되므로 토큰은 동일한 apex-scoped 쿠키...
호스트 조직에서 흰색 라벨 등록 화면을 그리십시오
Kamo-login a200fc6와 같은 결함, 같은 원인. getThemePath()의 마지막 리조트 hostname의 테마 폴더를 derives - 이름 폴더가 BEFORE 2026-08-26 alias 마이그레이션. 공개/<alias>/, 그래서 이후 생성 된 모든 조직, regi...
광고가 여기에 후보를 가져 오는 기억
/team에 대한 공공 경력 사이트 링크?jobId=<uid>. 등록은 몇 가지 단계, crosses host 과 bounces through email 확인, 그래서 uid 이다 공유 apex에 해당되는 쿠키에 저장됨 flow's own state는 검증 detour에서 잃을 것입니다...
배경 carousel을 클립 그래서 그것의 급상승 정지 번쩍이는 scrollbar
들어오는 프레임은 스케일 1.04에서 시작되었으며 래퍼는 아니었다. 클립, 그래서 overscale는 바닥 가장자리를 과거 전망의 ~2%를 걸었다. 가장 가까운 부모를 돕는 변형 scroll container의 scrollable 영역, 그리고 registerFlow의 포탄은 입니다 o...
검증 화면의 벽지를 복원, 그것의 ***를 드롭, 그것의 상태 판을 현대화
/verification에 틀린 3개의 것, 1개의 스크린에 모든 눈에 보이는. 벽지는 결코 적재하지 않습니다. PostCompletionScreen 호출 **************** 하지만 그 매개 변수는 ALIAS는 ^[a-z0-9-]{1,63}$에 대해 검증됩니다. hostna...
YearEst는 org에 선택되어 도착한 null을 인정합니다
설립 연도는 조직 및 SecurityService에 부과됩니다. null을 명시적으로 일체화하므로 선언 된 `number`는 결코 전체 철사 모양.
Org's alias의 signup 화면을 브랜드, 호스트가 아닌
register.kamocrm.com은 등록없이 모든 조직의 가입 페이지입니다 자체의 호스트, 그래서 호스트 파생 테마 폴더는 그들 모두를 그려 플랫폼의 상표. `?org=`는 org's를 기록하는 것을 수정하는 것을 의미한다. DOMAIN, 아무도가없는 org는. 폴더는 org의 A...
상표와 범위 signup with ?org=
register.kamocrm.com은 모든 조직에 대한 가입 페이지입니다. 자신의 호스트를 등록, 그래서 호스트 이름은 하나의 방문자가 말할 수 없습니다 가입하기 그것은 플랫폼 조직에 그들 모두를 해결 — 어느 잘못된 브랜딩을 그린, 잘못된 장소에 계정을 만들었습니다. ?org= i...
할인 쿠키를 읽고 할인 * 필드를 보내
마케팅 사이트를 따르십시오 : kdsc vid / kdsc src, ?discount=로 자주 묻는 질문-param fallback 여전히 주소 표시줄에. 몸의 필드가 할인VisitorGuid / DiscountCode; SecurityService는 릴리스의 두 이름을 모두 읽습니다....
Signup에 대한 마케팅 추천
마케팅 사이트 태그 a 참조 방문자 with kmrt vid 과 kmrt src 에 공유 apex, 그래서 register.<apex> 그들을 읽을 수 있습니다; handleFinish는 둘 다 안으로 보냅니다 요청 몸, ?mrt=에 떨어지는 코드를 때 방문자와 함께 도착 링크는 여전히...
토큰의 int64 ids를 숫자로 붙이십시오
KToken은 실제 토큰을 확인할 수 없습니다. 네 개의 ids는 int64s이고 Java signer (kamo-shared-library KToken#canonicalForMac)는 각각 원시 `long`로 묶습니다. 그래서 모두 19 자리는 MAC 소재로 이동합니다. 이 클래스는 ...
Org의 순차 / 셔플 슬라이드 쇼 주문
Kamo-login과 같은 config.json 계약: backgroundOrder 드라이브 모두 3개의 등록 배경, absent 열쇠는 순차적으로 체재합니다.
ServiceType.ts에 CRLF 라인 종료
이전 커밋은 CRLF를 LF로 정상화 한 도구로 다시로드합니다. 각 선. app/types의 밑에 23의 sibling 파일은 아직도 CRLF입니다, 그래서 이것은 그것을 뒤로 뒀습니다 미래 diffs 및 비난 읽을 수 있습니다. 내용 변경 없음.
MLOS 이름을 가진 Sync AppType/ServiceType 거울
ServiceType.LOS는 MLOS (mortgage, id 14는 ORG FEATURES가 ID를 주장하기 때문에 유지되었습니다) 그리고 Freed LOS 열쇠는 이제 새로운 ID 25에 개인 대출 발행 체계입니다. 이 름 거울은 hasFeature()의 이름으로 일치하므로 백엔드...
One-time key를 통해 이메일 검증 후 자동 로그인
/verify-email이 첨가제 otk + autoLoginHost에 응답 할 때 필드 (First 인증에 SecurityService에 의해 채굴), 딥링크 https://<host>/validate?otk=... - 동일한 소비자 enter-as flow uses — 내부 홈에 신...
Unblock portrait phone, 분석 깔때기 분석 추가, 수정 계획 handoff
- portrait-phone gate를 제거하고 "전화를 썩습니다"그것을 숨겨 초상화 폰에 전체 마법사; 마법사는 지금 아래에 단일 열을 렌더링 휴대 전화에 스크롤하는 자연 페이지와 md breakpoint, 언어 / country pickers get a real min-height...
진행중인 탁월한 업무
단계와 헌신적인 as-is 그래서 아무것도 작동하지 나무에서 uncommitted 남아. 16 파일 변경, 3396 삽입(+)
Flaky egress에 대한 kubectl 다운로드를 Harden [skip ci]
dl.k8s.io 런너의 egress 간에 실수로 중간 전송을 삭제: 컬: (56) OpenSSL SSL read: 해독 실패 또는 나쁜 기록 맥 그렇지 않으면 녹색 빌드에 배포되지 않습니다. 반복적으로 관찰 kamo-signer-monorepo 및 카모 번역 사전. 추가 --retr...
평가판 orgs에 의해 구동되는 pill 위에 TRIAL USE를 보여주십시오
Refactors PoweredByKamo는 고정 열 더미 및 각자 Fetches로 /api/trial-status/{host} (SecurityService Public Trial-status에 대한 프록시 endpoint), org 's에 의해 구동되는 알약 위의 호박 알약을 렌더링...
Kamo-register 명예 소프트웨어 auth 로고 + 이름
- DynamicMetaLoader: config.json에서 소프트웨어 정체성 + auth selectors를 읽어, 해결 tab title, persist auth 로고/이름 state to sessionStorage - brand.ts + ThemeLogo : auth-logo i...
/member 및 /team 경로에서 회원 유형 보내기
/team signups는 TEAM MEMBER (ProSPECT, pending admin 활성화); /member를 만듭니다. 가입은 MEMBER를 만듭니다. registerFlow는 각 경로에 의해 공급되는 memberType prop을 가지고 갑니다 래퍼는 등록 요청 몸에 포함;...
기존 사용자에 대한 계정 연결 응답 처리
입력된 이메일이 이미 ACTIVE 계정에 속할 때, 백엔드 링크가 ACCOUNT LINKED를 반환합니다. 로그인하기 (?linked=1) 대신 이메일 검증 흐름 - 그들은 기존에 서명 비밀번호 새로운 사용자와 placeholder-claim signups는 검증 이메일 경로를 유지합니...
신체의 레지스트리의 호스트 이름을 보내서 오른쪽 org의 계정 땅
해결 된 org는 클라이언트에서 사용할 수 있었지만 백엔드에 보내지 않았습니다. org는 X-Forwarded-Host를 통해 유일한 implicitly 전달되었습니다. 공유 api 호스트에 다시 쓰기, 그래서 모든 가입은 kamocrm 아래 출원되었다. window.location....
K1m1 (clone+registry+kubeconfig from k1m1, 드롭 k2m1, 간단한 kubectl install)에 마이그레이션
유료 ?참고에서 체크인로 계획
회원 가입이 유료 가격 CTA (?plan=pro|사업)에서 시작될 때, apex-domain sp checkout plan 쿠키를 완료하십시오. kamo-login 소모 사용자 인증 후 /subscribe -> 스트립, 등록 -> 확인 -> 로그인 hops.
Subdomain-tenant org 버킷을 자신의 MinIO 폴더로 해결
getThemePath()는 그들 모두를 위해 apex+tld에 hostname을 감소시켰습니다 주인과 물통 폴더, 그래서 subdomain tenants 같이 gnosia.demo.kamocrm.com 대신 부모 apex의 브랜딩을로드 그들의 자신의. 이제 가장 깊은 별칭 (login...
만 표시 계정 복구 씨앗 구걸 단계에 대한 아래-13
왜: 13+ 사용자는 이미 이메일, 전화 및 보안 질문을 제공합니다 복구 방법으로, 씨앗 구문 단계는 그들을 위해 중복. 13 계정은 이메일 / 전화 / 보안 질문이 없습니다. 그래서 씨앗 구문은 자신의 유일한 회복 경로를 유지.
Scope concurrency to build jobs, not Kubernetes deploys
Workflow-level concurrency serialized the whole pipeline (including kubectl rollouts). Move the group to the build job only so deploy jobs from different runs c...
Polling widget.getState()에 의한 Enable Finish 버튼과 auto=onload로 전환
Statechange 이벤트 청취자는 끝 버튼을 안정적으로 활성화하지 않았습니다. *** 확인 후. 두 루트 원인: 1. 배수 논리 읽기 위젯Any. 위젯에 존재하지 않는 상태 — 위젯은 getState()가 아닌 .state 속성을 노출하므로 배수는 항상 확인 후 리스너가 부착되면 ...
Drop language search filter on My Language step
The supported language list is short enough to scan visually; the search input added complexity without user value.
언어 단계 추가, 국가 시간대 선택, 스크롤 + *** 수정
- 새로운 '내 언어' 단계는 마법사에 prepended, 나라를 미러링 단계의 배치. 플래그 타일로 22개의 마케팅 지원된 로컬 목록 네이티브 이름 + 영어 툴팁; navigator.languages의 사전 선택. - '내 국가' 단계는 이제 국가와 함께 시간대를 수집, 기본적으로 *...