Add LAN DNS pod for split-DNS on k1m1
Deploys a dnsmasq pod with hostNetwork on k1m1 that listens on 192.168.4.22:53. Overrides pbx.k1.kluster.kamocrm.com -> 192.168.4.22 so LAN phones reach the PBX...
플랫폼 구성 탭 (일반 / VOIP & SMS / 시스템 사용자 / 고급)
기타 제품 *********** 4개의 탭을 가진 SettingsView에서: - 일반 : 읽기 전용 플랫폼 개요 - 총 orgs, 활성 전화 서버 인스턴스 수, 활성 SMS-provider 인스턴스 수, 마지막 글로벌 VOIP 동기화 타임 스탬프. 새로운에서 읽음 **********...
글로벌 VOIP 동기화 작업 (admin-tunable interval)
VoipGlobalSyncJob는 매 분마다 진드기에, 읽습니다 SystemConfiguration Singleton은 글로벌 동기화가 이루어져 있는지 결정합니다. - voipSyncEnabled가 false인 경우 → 건너뛰기. - LastGlobalVoipSyncAt + voipSy...
시스템 구성 + 플랫폼 오버뷰 엔드포인트
Platform-wide 구성 표면, 기존의 최고 수준의 guard (matches SystemUserConfigController의 requireTopLevelOwner 패턴). 엔드포인트: - GET /api/security/system-config — 싱글턴 행을 반환 - PUT...
Per-instance 자원 관제사 + org 집계 + 내부 sync
Per-instance 자원 CRUD (확장 / 사용자 / 장치 / 음성 메일) : - VoipExtensionsController at *********** - VoipUsersController at /api/voip/instances/{id}/users 에서 - VoipDevice...
Multi-instance provider refactor + full FreePBX + Flowroute SMS
Core model change: one org → many VoipProviderInstances (was: one per org). Every provider API call is now instance-scoped. PhoneProvider interface: - New meth...
Multi-instance 전화/SMS 공급자 이동
Hibernate ddl-auto 후 실행 : 업데이트는 새로운 테이블을 만듭니다 (VOIP PROVIDER INSTANCE, BULK TEXT PROVIDER INSTANCE, PHONE EXTENSION, PHONE END USER, PHONE DEVICE에 대한 자세한 정보 ren...
Multi-instance 전화/SMS 공급자 스키마 기초
- Rename VoipProviderConfig → VoipProviderInstance; Drop UNIQUE(org id), add 인스턴스 name, config json, last sync at, last sync error. - Rename BulkTextProviderCon...
FreePBX 17 + K1m1 및 k2m1의 Jigasi SIP 브리지 배포
FreePBX (tiredofit/freepbx:17-latest)는 hostNetwork로 실행되므로 SIP/RTP nodeSelector를 통해 실제 클라이언트 IP를 보호하고, 1per-node를 피했습니다. SIP 정보 5060 UDP/TCP (5061 TLS), Janus를 피...
플랫폼 관리자보기, pagination, 라이브 검색, 필터, org 로고
플랫폼 관리자 (최고 수준의 org 소유자) 이제 시스템을 통해 모든 org를 참조하십시오 새로운 /api/security/org/all-networks endpoint 대신 자신의 회원. Header title and subtitle update to 반영 관리자 컨텍스트. 다른 증...
플랫폼 관리자를 위한 GET /api/security/org/all-networks 추가
Top-level org 소유자는 이제 시스템과 함께 모든 조직을 읽을 수 있습니다. Caller와 관련된 회원 정보. Orgs where the caller has a 회원 register get isOwner/memberId populated; 다른 사람은 memberId를 얻습니다...
보안 모델 편집기의 하위 탭 + 정리
- 보안 모델 편집기 ...에서 *********** 지금 분할 4개의 sub-tabs로: 일반 (기본 정보, 가시성, 누가 만들 수 있습니다, 플랫폼 설정, 도메인 구성, 상업 시장), 검열 (alcohol/ 담배 / 방화 + 회원 + 팀 회원 연령대), 허용 된 응용 프로그램, 및 ...
Alias 가시 UI + Subdomain 브랜치 버튼
하위 도메인BranchesDialog: - Alias 편집기는 테이블 스타일 행 목록으로 칩 목록을 대체 alias 당 회원 및 팀 구성원 체크 박스 - 관리 제어 제작자 유형은 /network/create에 있는 각 부모 별명을 보십시오 - onUpdateModelSubdomainCo...
별명 가시 필터링 + 자동 검증 subdomain 소유권
OrganizationController: - Web-alias org 생성 이제 자동 마크 소유권Verified=true 및 isDnsVerified=true 에 생성 된 OrgDomain — 아니 TXT 레코드 필요 이후 GoDaddy에 DNS를 제공 - CUSTOM parentAl...
Per-alias 제작자 유형 시정 플래그 추가
SeeToMembers/ 가시ToTeamMembers boolean 열을 추가하십시오. ChildOrgSecurityModelAlias 그래서 관리자는 부모 별명을 제한할 수 있습니다. Child orgs를 만들 때 멤버 vs 팀 멤버에게 나타났습니다. - 성격: 2 @Builder....
설정 대화 상자, 웹 별 마법사 경로 및 DNS 제공 패널
Subdomain Branches UI를 3개의 표면에 추가합니다: - *********** 새로운 “Subdomain Branches” 단추 org-level의 대화 상자를 열고 toggle + GoDaddy creds를 활성화합니다. per-security-model editor f...
Org-level config, GoDaddy 클라이언트 및 웹 별 org는 경로 생성
새로운 Subdomain Branches 특징은 백엔드에 종료됩니다. - SubdomainBranchesController for org-level enable + GoDaddy creds (라이브 인증) - GoDaddyDnsClient는 idempotent CNAME upserts ...
Entities, cipher 및 alias/DNS 로그 비계 추가
Per-org GoDaddy creds (AES-GCM 암호화)에 추가, AllowRootSubdomains 플래그 and child-org alias collection on the security model, DNS 제공 SecurityService에서 Round-trip에 사용되는...
Prefix/suffix dropdowns, mailbox 도메인 게이트, 명시된 상태
- 이름 접두사 및 suffix는 이제 dropdowns에서 대중화됩니다. NamePrefixType / NameSuffixType 카탈로그 org-config에 의해 전달 끝점. 옵션 당 약어 + 전체 이름을 표시합니다. - "Provision 조직 이메일 mailbox"는 이제 비활...
Explicit 팀 상태 + 이름 prefix/suffix 카탈로그
- GET *********** 이제 namePrefixes를 반환하고 nameSuffixes, NamePrefixType 및 NameSuffixType에서 소스 회원 추가 / 팀 회원 양식을 작성하지 마십시오. - POST /create-team-member는 이제 omits 요청을 ...
전체 폭, 3 팬 추가 회원 양식 레이아웃
대신 전체 콘텐츠 영역을 사용하여 생성 양식을 재생합니다. 1100px-wide 중심의 열. - 3-column 응답 레이아웃 : 끈적 끈적한 왼쪽 섹션 nav (md+), 전체 폭 양식 (always), 오른쪽에 라이브 요약 패널 (xl +). - Field rows now scal...
Merge alias/email/name/phone을 단일 "내 프로필"단계로
이전에 별도의 "내 전자 메일 및 별명", "내 이름", 그리고 "전화 번호"는 13 + 등록자를위한 "내 프로필"단계로, alias + 전자 메일 + 법적 이름 필수 및 전화 번호 옵션 (SMS를 통해 입력될 때). 아래에서 13 등록자는 단일 이름 "My User Alias"단계 —...
아래-13 signups에 대한 이메일 + 법적 이름 선택
/api/security/register endpoint 이전에 모든 요청을 거부 누락된 이메일, 이름, 또는 마지막 이름. 즉, 13 경로를 만들었습니다. (KIDS ONLY orgs, 또는 ALL AGES와 하위-13 등록) 불가능 — 합법적으로 그 계정은 별칭 + 암호 + 씨앗 구...
시스템 사용자 구성 페이지 + 네트워크 ENTER AS SYSTEM MEMBER
플랫폼 관리 추가 → 구성, 부모-org-owner-only 해당 이용 후기에 달린 코멘트가 없습니다. 시스템 사용자 부서, 직책, 또는 개별 팀 구성원. 모든 3개의 nav 위치에 등록 (페이지 타일 목록 설정, SettingsStatusWindow 경로 + 하위 주제 및 페이지 자체...
Backfill, 입력 흐름, 돌연변이 감시, 구성 API
Self-heal 프로비저닝: SystemUserBackfillService는 모든 것을 실행합니다. SecurityService boot (DataLoader에서)는 is system user 열을 추가합니다. and system user access table if 누락된 경우, 싱...
시스템 사용자 플래그 + 액세스-grant entity 추가
플랫폼 전체 시스템 사용자 모델 소개: a User.isSystemUser flag (일부 인덱스는 싱글톤을 적용합니다), 플러스 SystemUserAccess 테이블 그 기록은 top-level-org 부서, 직책, 또는 팀 구성원 시스템 사용자를 impersonate 할 수 있습니다...
전화 검증 + 보안 질문 단계 추가
암호와 계정 복구 사이에 두 가지 새로운 단계를 삽입 13+ 등록자: SMS 코드와 더불어 전화 번호 단계 (선택, Skippable, 인증) 및 보안 문제 단계 (required, 3 명백한 답변과 질문). Under-13 등록자 모두 건너뛰기 그리고 회복을 위한 종자 구문에 의존합니...
Signup 도중 전화 + 안전 질문
휴대폰 번호 및 보안 요청 수집을 셀프 서비스로 이동 등록 흐름 (그들은 원래 의도) 오히려 post-signup 설정 페이지를 필요로 합니다. - New RegistrationPhoneService: 생성/확인 6자리 SMS 코드를 통해 BulkTextSmsClient, 10분 TT...
등록 iPhoneCode entity + 저장소 추가
새로운 테이블 `registration phone codes` 저장 한 샷 SMS 인증 코드 자체 서비스 등록 기간 동안 발급된 사용자의 법인이 존재하기 전에. NULL userId를 수행하기 위해 AccountVerificationCode에서 분리되는 Kept 그 테이블에.
회원 추가 / 회원 추가
- /account: tab-scoped 버튼으로 단일 주변 버튼을 교체 회원 탭에서 <Member>를 추가하면 팀 멤버 탭에서 <Team Member>를 추가합니다. 이 페이지는 자동으로 번역 되었다. 원래 페이지는 자동으로 번역 되었다. 회원 디테일 보기 - 새로운 /settings...
회원 추가 / 팀 회원 생성 흐름 추가
- 새로운 MemberCreateController 노출: * GET *********** — age-req, 시간대, 부서, 직책 * GET **************** — 이메일 또는 사용자 이름에 의하여 debounced 존재 체크 * POST /api/security/membe...
추가 AgeReqType.allowsUnder13() 도움자
추가 회원에 의해 사용 / 팀 회원은 이메일 수집을 건너 뛰기 연령 요건이 13세 미만의 사용자를 허용하는 경우 (ALL AGES, KIDS ONLY, ALL COPPA GRADS).
회원 계획 및 빌링 그룹 주위에 빌링
- 회원 페이지 플랜 & 빌링 탭은 이제 펄싱 글로우로 정렬됩니다. 그리고 탭 바의 StarRate 아이콘. 시청자가 될 때 눈에 띄는 로그인 사용자 또는 로그인 사용자는 org를 소유합니다. 내용 분할 4개의 sub-tabs로: 구독, 청구서, 결제 정보, 그룹 관리. Billing-...
EntitlementService + SecurityModel commerce 마켓 추가
- EntitlementService는 조합 활동에 의해 per-member 특징 보조금을 따릅니다 BillingGroupLicense 계획 기능 + KamoCRM 무료 계층 기본. 스낵 바 Redis의 15 분 프로젝트는 memberId에 키워졌습니다. - EntitlementInva...
BillingGroups 주변 청구서 작성
Org-level의 삭제 *********** 관제사, 서비스 및 DTOs. 소개 : - BillingGroupController 장착 그룹, 회원, 구독, 라이센스, /api/billing/groups의 결제 방법 및 송장. - BillingGroupService (라이프 사이클 +...
BillingGroup 모델과 org-level 청구
BillingGroup, BillingGroupMember, BillingGroupSubscription을 소개합니다. BillingGroupLicense, BillingGroupPaymentMethod, BillingGroupInvoice, 그리고 BillingGroupConfig e...
Interaction Center 회원 라인은 구인 제목을 사용합니다
작업과 RBAC 역할 제목을 대체TitleOfficial, JobTitle에 fallback TeamMember의 카탈로그 제목 및 기본 회원 라벨 by-department payload 역할 필드에 기록.
오브젝트 업로드에 대한 옵션 Cache-Control
이렇게 globals.css 및 config.json instruct 브라우저를 제공하는 테마에 의해 사용하는 및 프록시는 stale cached 객체 대신 다시 유효하지 않습니다.
테마 자산에 구성 및 캐시 헤더의 ThemeRevision
Emit themeRevision (epoch ms) 각 쓰기에 config.json에; 설정 캐시 제어 config, globals.css 및 사이트. webmanifest uploads 그래서 가장자리 캐시가 다시 유효하다.
Avatar cleanup에 대한 *********** 추가
Avatar를 제거 할 때 사용하는 회원은 같은 행을 삭제하기 전에 명확하게 할 수 있습니다.
?fresh=1를 통해 신선한 창조에 명확한 마법사 sessionStorage
네트워크에서 Navigate는 ?fresh=1로 만들고, 조회를 벗고, 사용 Short-lived lock 그래서 React Strict 모드는 이전 초안을 복구하지 않습니다. persist 실행. SessionStorage의 마법사 초안 생활 (localStorage).
Alcohol/tobacco/firearms 준수 정책
- CHILD ORG SECURITY MODELS 열 및 엔티티티티 기본값 MEMBER SELECT - DTO 및 ChildOrgSecurityModelService create/update 정상화 - AppliedModelEnforcementService는 아동 org ATF 플래그 ...
모델 및 creatable 지점 유형에 ATF 준수 정책 노출
- OrganizationController는 연령 증명 전에 모델 시행을 적용합니다. - SecurityModelController 및 MasterModelController 패스 정책 필드 - BranchTypeController는 /branch-types/creatable에 있는 ...