Use OTKPreAuthFilter attributes instead of re-validating OTK in NotesController
The OTKPreAuthFilter already consumes and validates the OTK, storing the session data in request attributes. NotesController was trying to re-validate the alrea...
Explicitly forward visitor IP to downstream services
ForwardedHeaderFilter consumes X-Forwarded-For from the incoming request, so when APIService forwards to SecurityService via RestTemplate the header is missing....
Load countries from CountryType enum, add flag icons to geo-blocking
Countries route now proxies to /api/security/countries (CountryType enum) instead of **************** (empty GeoLite table). Adds react-world-flags for country ...
Rewrite Access Blocks help tips for clarity
Explains all four sections (whitelist, blacklist, temp blocks, geo-blocking) in plain language. Adds a CIDR range guide with examples showing /32, /24, /16, /8 ...
Resolve notes page load failure and replace Quill editor with Lexical
Add missing runtime/dynamic exports to all notes API routes to enable proper OTK authentication. Replace React Quill WYSIWYG editor with the same Lexical-based ...
Forward visitor IP/User-Agent to backend, add duration unit picker
apiProxy: Now forwards X-Forwarded-For and User-Agent from the original visitor so backend logs the real client info instead of the Next.js server. AccessBlock...
Remove RoleRightsSyncRunner — rights are added manually for existing orgs
The underlying bug in **************** (detached entity issue) has been fixed in kamo-shared-library. New rights for existing roles will be added manually via S...
CreateOrganization의 역할 권한을 만들 때 관리 된 역할 참조
OrganizationRepository.save() 후, 로컬 roleAdmin/roleEveryone 변수는 persistence context에서 분리 될 수 있습니다. createRoleRights()을 OrgRoleRight 항목을 detached 객체에 추가했습니다. 나중에 ...
Restore permission gate on AccessBlockManager
Re-adds the MANAGE_ACCESS_RULES permission check that was incorrectly removed. The underlying issue (admin roles missing new rights) is fixed by KamoInitializer...
Add RoleRightsSyncRunner to backfill missing role rights
When new RoleRightType entries are added to the enum, existing roles don't have OrgRoleRight entries for them. This runner checks all roles on startup and adds ...
Remove full-component permission gate from AccessBlockManager
New rights aren't assigned to any role yet, blocking all users. Other security settings tabs (API Access, OAuth2, System Debug) don't have permission gates — fo...
Remove GD check from ****************
The sed command that added the god-mode bypass incorrectly inserted it into all methods containing sessionData, not just hasRight. This caused 'return true' (bo...
Initialize god mode state synchronously from localStorage
isGodMode was initialized as false and only loaded from localStorage in a useEffect (after first render), so checkRight() returned false on initial render even ...
Allow god-mode-active users to bypass right checks in checkRight
New security rights aren't assigned to any role yet, causing all users to be denied. God-mode-active users now pass all checkRight() calls.
Allow god-eligible users to bypass access security permission checks
New rights (MANAGE_ACCESS_RULES, VIEW_ACCESS_LOGS, etc.) aren't granted to any existing role yet, so all users get Forbidden. God-eligible users (GD=true in ses...
Move AccessEnforcementFilter to scanned package, revert ComponentScan
The widened @ComponentScan caused a corsFilter bean conflict between CorsConfig and WebConfig. Moved the filter into com.kamo.api.app.config (already scanned by...
Add Redis connection config to K8s configmap
APIService pod was failing to start because spring-boot-starter-data-redis auto-configuration couldn't connect to Redis at localhost:6379. Points to redis.kamo....
Add access security system frontend
13 API proxy routes, access check module with CIDR matching, proxy.ts enforcement integration. Reworks AccessBlockManager (real API + geo-blocking), creates Sys...
Add GeoLite2 sync job for MaxMind IP-to-location database
Quartz-scheduled job (weekly Sunday 3 AM) that downloads MaxMind GeoLite2-City-CSV, parses IPv4/IPv6 blocks and locations, loads into staging tables, and perfor...
Add access enforcement filter for IP-based access control
Redis-backed servlet filter that evaluates whitelist/blacklist/temp-block rules on every inbound request. Adds spring-boot-starter-data-redis dependency and Red...
Add access security system backend
8 new services (AccessCacheService, GeoLiteService, GeoLiteSyncService, AccessRuleService, GeoBlockService, AccessLogService, DetectionRuleService, SuspiciousDe...
Add access security system schema migration
Creates 7 new tables (org_access_rules, org_geo_block_rules, org_suspicious_detection_rules, system_access_logs, geolite_blocks, geolite_locations, geolite_sync...
액세스 보안 시스템 entities, enums 및 저장소 추가
추가 JPA 엔티티티 (OrgAccessRule, OrgGeoBlockRule, OrgSuspiciousDetectionRule, SystemAccessLog, GeoLiteBlock, GeoLiteLocation, GeoLiteSyncStatus), 6 새로운 enum, 7개의 저장소...
Add Create Document button with rich dropdown on /doc/manager
Adds a styled dropdown menu with document type options (Document, Spreadsheet, Presentation, Drawing) each with descriptive text. Removes the NewDocumentButton ...
Show KB nav item unconditionally in sidebar
Removed the isKnowledgeBase feature gate so KB always displays, matching the previous NavTop behavior.
GradientMeshBackground orbs 제거 마우스 코더를 따르는
파란색과 보라색 레이디얼 그라디언트 서클이 연출되었습니다. GradientMeshBackground 구성 요소 추적 마우스 위치.
불꽃과 스크롤 입자 파열 애니메이션 제거
영웅, 기능, 가격, 그리고 SignupSection. ScrollParticleBurstEnhanced 불꽃 애니메이션 제거 본문 바로가기.
단계 전환에 첫 번째 키 입력 드롭에서 암호 입력을 방지
초점 파싱 루프는 setSelectionRange(0, 길이)를 호출하여 50ms마다 호출되었습니다. 1.2s의 경우 어떤 유형의 문자를 선택하여 다음 키 입력을 대체 그것은. 이제 사용자 입력을 추적하고 브라우저 autofill에 대한 텍스트 만 선택합니다.
Replace broken Anthropic, OpenRouter, and xAI logo SVGs
The original files were 404 placeholders (14 bytes). Replaced with proper SVG logos from Simple Icons.
끊긴 Anthropic, OpenRouter 및 xAI 로고 SVGs를 대체하십시오
Kamo-internal의 원래 파일은 404 위주자 (14 바이트)이었다. 간단한 아이콘에서 적절한 SVG 로고로 교체.
Marquee와 통합하는 AI 공급자 로고를 추가하십시오
DeepSeek, xAI (Grok), Meta (Llama), Perplexity 및 Hugging 얼굴.
Update calendar, contact, and integration ID types from Long to UUID
Calendar entities, contact sub-entities, and ContactIntegration IDs are now UUID. Updates all services, controllers, and DAV endpoints.
Resolve remaining Long/UUID type mismatches in controllers and beans
Fixes LeadVendorController, LeadMarketController, LeadImportController, ImagingController, AccountController, MediaStreamController, POSController, MemberContro...
서비스 및 DTO에 남아있는 Long/UUID 유형 mismatches 해결
CommerceService, OrganizationService,에서 컴파일 오류 수정 ExternalAuthProviderService, Img*Service, Lead*Service, LeadVendorService, ImageService 및 모든 POS DTO. Jackson ...
Update internal entity ID types from number to string for UUID migration
Updates TypeScript types, hooks, and components to use string IDs for entities converted to UUID on the backend. User-facing entity IDs (User, Organization, Mem...