변경 로그
무슨 일이야?
플랫폼에 대한 모든 개선 사항, 그것이 선적.
· kamo-shared-library
회원 할당 및 per-document 진행 추가
문서 행은 N e-sign envelopes가 하나의 패키지로 읽는 결합입니다. 배지 카운트는 할당 상태, e-sign 상태: 수신자 상태에는 VOIDED 또는 EXPIRED가 없습니다. void는 수신자 행을 결코 만지지 않습니다. 인정 전용 패키지에는 모든 봉투가 없습니다.
· kamo-shared-library
Freeze 패키지 내용 immutable 버전
ImgDat blob id 및 그 SHA-256, 그냥 imgId - Docs 저장을 핀 새로운 바이트에서 동일한 Img을 다시 점, 그래서 imgId 혼자 두 개의 회원 기호를하자 동일한 ids의 밑에 다른 문서. snapshots 디자인 너무, 그래서 실행 fixDesignJson의 최신 레이아웃에 달려 있지 않습니다.
· kamo-shared-library
부서, 직업 유형 또는 이름 회원에 패키지를 대상
시스템에 연결UserAccess. TeamMemberRepo에 대한 청중 해결자를 추가합니다. 빈 인터페이스이었다; ACTIVE + recordState predicate is what keep 종결된 직원과 납품의 외출 후보자.
· kamo-shared-library
법적 패키지 템플릿 entities 추가
패키지는 바인더와 청중의 주문 세트입니다. Binder 참조는 바인더가 user-deletable이기 때문에 부드러운 에이즈와 아이템을 캐스케이드. 더 보기 attestation wording는 해시로 가득 차 있습니다 — 포인터는 증명할 수 없습니다 회원이 동의하는 것.
· kamo-internal
컬렉션의 바인더 매장 인식
상점은 단위 singleton입니다, 그래서 지금 활동 범위를 추적, 에 명확 범위 변경 및 스테이플 in-flight 응답을 삭제합니다.
· DocsService
한 컬렉션 내에서 바인더를 만들고
DocManager의 (assocType, assocObject)에 대한 가시 알림 쿼리 Id), 생성에 대한 범위를 스탬프, 복제에 상속, 및 범프 last modified binders row를 작성하지 않는 항목 mutations에서.
· DocsService
바인더 와이어 계약에 수집 범위를 실시
· InitializerService
Backfill the collection 각각의 기존 바인더가 속한
Derives 첫번째 DOC 품목의 Img에서 범위; 빈 바인더는 뒤로 떨어졌습니다 내 문서의 소유자. backfill 후에만 NULL를 적용하지 않습니다.
· kamo-shared-library
Narrow 바인더 가시성
FindVisibleToMember를 범위 변형으로 바꾸고 2를 떨어뜨립니다. unreferenced finders that sorted by a dead date updated 열.
· kamo-shared-library
Binder 문서를 수집합니다
Binders는 assoc scoping가 없었다, 그래서 모든 DocManager는 동일한 세계를 렌더링 1인 풀과 바인더는 마케팅에 의해 HR로 채워질 수 있었습니다 문서. Img.assocId와 일치하기 위하여 ImageAssocType ordinal를 저장하십시오. 또한 app-managed last modified 추가: BaseEntity.dateUpdated 는 *********** 그래서 목록의 분류에 의해 항상 창조에 의해 정렬.
· kamo-internal
그룹은 극대화 할 때 의미로 회의 초대장
동일한 반으로 형태를 나누는 것은 잘못된 단위를 사용했습니다. 그것은 날짜를 펴 창의 절반에 입력하고 멀리 가장자리에 그것의 모든 일 상자를 좌초했습니다, 왼쪽 몇 백 픽셀의 아무것도 추적하는 2 개의 짧은 시간 입력, 및 푸시 Reminders에서 전체 창폭을 추가하는 것은 속합니다. 한 생각으로 읽으십시오 sat 행 떨어져. 클레임은 대신 12-column 그리드를 추적하고 각 필드가 무엇인지에 크기를 나타냅니다. 제목 전체 폭, 헤드 라인 필드 일시 + 하루 종일 | 시간 | TZ 전체적인 "when" 클러스터 한 줄 위치 | 회의 URL 위치 및 가입 방법 Reminders 상표, 항목 및 Flowing 인라인 추가 Reminders 혼자 gets row back: two short selects no longer cost a line each. 타임 필드의 트랙을 하루 회의에 흡수하는 시간대 Widens 그 라인은 여전히 폭을 맞습니다. 필드 주문은 터치되지 않습니다 - 그룹화가 온다 스팬에서, 그래서 당신이 보는 것을 통해 탭을 통해, 두 레이아웃에서.
· kamo-internal
편집 가능한 몸에서 인용 된 원본을 유지
대답은 전체 인용 된 메시지를 Quill 편집기로 몸 텍스트로 떨어졌다. Quill는 간단한 격자만, 그래서 인용에 있는 각 배치 테이블만 할 수 있었습니다 flattened into one — and layout table are how Signatures and virtually all 마케팅 메일은 왜 인용 된 서명이 Bare로 돌아 왔습니다. 원래의 뒷면을 얻을 수있는 방법이없는 세포의 그리드. 이제 인용은 내부보다 몸 옆에 여행합니다. 대답, 회신 그리고 `quotedHtml`로 손을 전달; 작곡가는 아래 그것을 보여줍니다 서명, 정확히 전송 된 메일에 착륙, 동일을 통해 렌더링 sandboxed iframe the reading pane uses — 그래서 그것은 도착했을 때, CSS는 작곡가에 유출할 수 없습니다. 덧붙여서 서명 후. 그것은 시작으로 붕괴되어, 긴 스레드에 견적을 dwarfs. 두 가지 행동은 다음과 같습니다. 대답에서 제거하거나 몸으로 이동합니다. 일반 텍스트. 두 번째는 편집기에서 인용문을 복용하기 때문에 존재합니다. 스레드를 아래로 손질 할 수있는 능력을 얻었다 라인에 대답 - 수행 아직도 레이아웃을 비용, 하지만 지금은 명시적 선택 보다 unavoidable 기본값. 밖으로 길에염. 편집자 주변의 인용문을 끄는 것도 implicit 주위는 편집기를하고 있었다, 그래서 sanitizeEmailHtml 지금 re-sent 전에 실행. Deliberately not put through makeHtmlLegible: 그 감시 판단 색상에 대 한 작곡가의 흰색 캔버스, 텍스트에 대한 권리는 거기에 쓰고 잘못 자신의 <style>를 유지하고 자신의 배경에 렌더링하는 인용문. 뚱 베어 어두운 테마의 뉴스 레터의 흰색 텍스트가 어두운 색으로 만들 것입니다. 견적은 도구 창 스냅 샷에서 타고 그래서 다시로드는 그것을 잃지 않으며, 초안을 저장 할 때 몸에 얽혀 - 초안 엔드 포인트는 하나 몸, 그리고 다시 열린 초안은 스레드를 잃어버린 텍스트로 인용.
· kamo-internal
회의 초대 필드를 최대화할 때 두 개의 컬럼으로 페어링합니다
초대 양식은 최대 규모의 작곡가 인 8 개의 전체 폭 행을 스택합니다. window pushed the body editor most of the way off screen while left half the 창의 폭은 입력의 측을 비웁니다. Maximized, 이제 필드는 기존 DOM 순서에서 두 개의 트랙으로 흐릅니다. — 제목|일시|시간별|시간별, 위치|URL – 양식의 높이를 반으로 좁고 좁은 레이아웃을 재주문. Reminders는 가득 차있는 폭을 지킵니다 모두에서 : 목록은 알림 당 행을 증가시키고, 절반 열은 만들 것입니다 전체 양식은 높이로 이동합니다. 트랙은 minmax(0, 1fr)보다 1fr, 또는 그리드 트랙의 기본값입니다. min-width:auto는 내용의 밑에 수축하고 URL 줄을 시켰습니다 입력과 생성 단추는 반의 폭을 밉니다.
· ESigService
서명된 문서에 페이지 작업 및 수정을 적용
디자이너는 항상 페이지를 회전, 삭제, 주문 및 추가 공백, 플러스 제공 워터 마크, 페이지 번호 및 라벨 modifiers, 그리고 flatten 읽지 않은 것: 그것은 소스 페이지와 appended 인증서에 각인된 필드 값. 자주 묻는 질문 아직도 배송, 당신이 구성 된 워터 마크는 결코 등장. 모든 것 지금 적용. 라인은 독자의 기대에 따라 구성합니다. — 빈 페이지 그래서 디자인의 인덱스 공간은 문서를 일치, 각 페이지는, back-modifiers draw, 필드 값 각인, 위 워터 마크 그려, 삭제 페이지가 떨어졌다 나머지는, 인증서가 마지막으로 부과. 인증서 페이지 번호 또는 워터 마크를 수행하지 : 그들은 문서의 감사 기록, 그것의 일부가 아닙니다. 페이지 번호는 완성된 순서에 대하여 해결됩니다, 그래서 문서는 페이지 번호를 삭제 survivors 1..n 오히려 간격을 떠나지. 디자이너 이제 동일한 순서 (kamo-internal pageSequence.ts mirrors)를 해결 EsignPageLayout, case for case) 그래서 미리보기는 번호를 약속 할 수 없습니다 전달된 문서는 수행되지 않습니다. modifiers 는 페이지에 대하여 독자가 그것을 볼 수 있다. 페이지는 mapping display 좌표를 사용자 공간으로 바꾸고 사전 회전 content so it does not come out sideways — EsignPageFrame은 그, 그리고 그 4개의 교체는 구석 시험에 의해 핀으로 꼿습니다. Watermarks는 테마 버킷에서 org의 자신의 로고를 사용합니다. 대부분의 orgs 보유 SVG 단지 PDFBox는 래스터를 그립니다, 그래서 SVG는 외부를 가진 Batik를 통해 transcoded 리소스로드 거부 - 업로드 된 로고는 tenant-supplied 콘텐츠 및 rasterizing는 만족하지 않습니다. 로고가없는 org는 워터 마크가 없습니다. 플랫폼의 기본 표는 tenant의 계약에 대체되지 않습니다. 전역을 강하게 하기: 디자인 JSON은 완전히 파종됩니다, 그래서 아무것도 malformed, 더 새로운 디자이너의 범위 또는에서 떨어졌다 오히려 던져지고 서명은 여전히 땅. 모든 페이지 삭제 거부 - PDF는 유효하지 않습니다 제로 페이지 양식과 페이지의 계약은 문서가 아닙니다. Inherited 페이지 속성은 페이지 트리가 재구성되기 전에 pinned. 삭제 된 필드 페이지는 다른 페이지에 각인되지 않습니다. 텍스트 대신 악센트를 유지 ASCII에 평평하게, 문자 당, 글꼴이 인코딩 할 수 있는지. 59 테스트, 17는 실제 PDFBox 끝을 구동하고 결과를 다시 읽습니다.
· kamo-internal
모든 팝업 도구 창 40px 더 많은 룸 모두 axes
레지스트리의 각 도구의 디폴트 크기와 minSize는 40x40로 성장하며, 그와 함께 하드 코딩 된 기하학은 오히려 배설보다 계약 중 : - CalculatorTool의 per-mode size table, 계산기의 거울 기본값. - AiChatWindow의 복원 된 크기. 420x520에 이미 있었다 오래 된 최소한의 머리카락; 새로운 360x540에 대해 복원 할 것입니다. 드래그사이즈보다 작은 창을 만들 수 있습니다. - restoreWindows() 이제는 도구에 대한 persisted 크기만 재생합니다. 실제로 크기를 조정할 수 있습니다. 고정 크기 도구에 대한 스냅 샷 단순히 echoes 다시 빌드의 레지스트리 디폴트는 그것을 썼다, 그래서 탭은 가로를 다시로드 이 변화는 오래된 320x650을 복원하고 나머지를 위해 유지 그것의 생활. 같은 가드가이 변경을 미리 지정한 경우를 수정합니다. 창 릴레이 아웃은 짧은 뷰 포트에 맞게 아래로 클램프했다 죄는 크기 및 결코 뒤쪽으로 성장하지 않았습니다. 도크의 자체 배치 — findDockX, RelayoutWindows, the makeRoom rect 및 hexhead 엔진의 피임 - 모든 측정 라이브 형상, 그래서 그들은 따라 업데이트에 아무것도 새로운 크기. 또한 AI 채팅 극대화 버튼을 수정합니다. `height > 800`는 `isMaximized`에서 아이콘을 그리는 동안. 모든 viewport 800px 보다는 더 짧은 극화는 그 문턱을 만족시킬 수 없었습니다, 그래서 복원을 위해 제공 된 버튼 및 다시 확대 - 창이 될 수 없습니다 모든 것에 다시 가져 가라. 이제 둘 다 동일한 값을 읽습니다.
· kamo-internal
끌기, 커트, 사본 및 풀 수신자 칩 사이 To, Cc 및 Bcc
Bcc에서 누군가가 칩을 삭제하고 주소를 입력하지 않는 기억에서 다시. 칩은 지금 선택할 수 있고 끌기 일 수 있습니다 다른 세 가지 필드 중 하나에서 클립 보드. - 칩을 선택하세요. ctrl/cmd-click toggles and shift-click 범위가 걸립니다. 정보 카드는 클릭에서 더블 클릭으로 이동하므로 단일 클릭은 무엇을 할 수 있습니다. 그것은 다른 우편 클라이언트에서 - 칩을 올립니다. - 다른 분야에 1개의 칩 또는 전체적인 선택을 끌기. Ctrl 또는 Alt가 개최됩니다. a copy; 인서트 관리는 땅을 어디에 표시하고, 안쪽에 떨어지는 동일한 분야 reorders. 멀티 칩 드래그는 더 많은 것을 보여주기 보다는 카운트를 나릅니다 - Ctrl+X/Ctrl+C/Ctrl+ V는 분야 사이 칩을 이동합니다. text/plain은 항상 쓰기, 그래서 칩 드래곤 또는 몸에 복사 — 또는 다른 메일로 클라이언트가 완전히 도착합니다. 일반 주소 목록; 개인 취향 이름을 유지, 사진과 접촉 링크 페이스트에 대한 Kamo. - 키보드 : 화살표는 칩을 걸어 (시프트 확장), Ctrl + A는 분야를 가지고, 삭제는 다음 칩에 선택과 땅을 제거, 탈출은 반환 입력. 이제 빈 입력의 백스페이스는 대신 마지막 칩으로 나뉩니다. 그것을 떼어내는 것, 그래서 가기에 대한 것은 먼저 볼 수 있습니다. - 입력 칩에 붙여넣기 모든 완전한 주소, 포함 단 하나. 절반 유형의 파편은 여전히 텍스트 입력으로 떨어졌습니다. Cross-field Half는 3 필드가 서로 행동해야하며, 필드는 자체 목록은 할 수 없습니다. RecipientTransferProvider는 레지스트리를 보유하고 있습니다. 그리고 움직임을 수행합니다. 그것없이 렌더링 된 필드 — 캠페인 편집기는 하나 사용 자체에 - 선택, 주문 및 클립 보드를 유지, 단순히 가지고 이동할 수 없습니다. 비밀번호 이제 목록은 단지 '@'보다 도메인이 필요합니다. parseAddress deliberately lax 이다 그것 키 a avatar 캐시 륙 무엇 header 수행; 칩은 우리가 제공하는 것을 시도하는 무언가, 그리고 "bob@"를 붙여 보내지 않을 수 있는 한 생산.
· kamo-internal
페이지, flag 읽지 않은 수입, 읽기 주문 필드를 가진 필드 오버레이를 회전
문서를 한 번에 한 번만 시작하는 세 가지는 forty를 운반합니다. 2개의 손 대신에 검출된 분야. 페이지 회전 : 페이지를 회전 캔버스를 돌았지만 왼쪽 필드와 주석 뒤에, 그래서 그들은 닻 된 내용 떨어져 slid. 지금 두 층 페이지를 끄고, 페이지의 자신의 무적한 공간에서의 좌표를 유지 그 때문에에 대한 백엔드 포지션이 무엇인지. 모든 포인터 상호작용은 새로운 pageGeometry helpers를 통해 화면 공간을 다시 맵핑 - 드래그, resizing, annotation drawing, and dropping the new field from the toolbox — and unrotated: 그 페이지 구조에 대하여, 그것의 내용. 보이지 않는 마커 : 자동 배치 된 필드는 사용자가 클릭 할 때까지 dashed 링을 수행 1, 그래서 큰 수입은 체크리스트로 읽습니다. 세션 전용, 결코 저장되지 않습니다. 읽는 순서: 검출된 분야는 페이지의 밑에 분류되고 각 선의 맞은편에, 공차와 함께 약간 잘못 정렬 된 행은 여전히 오른쪽으로 남아 있습니다. 다운로드 파일에서 주문은 저자의 도구 artefact이며 종종 주문은 없습니다. 또한 내 자신의 만들기의 옵션 가치 충돌을 수정 : 두 개의 라디오 버튼 인쇄된 captions 경기 (1개의 질문에 2개의 “예”)는 동일한 가치를 주어졌습니다, 그리고 signer는 단추의 자신에 그룹 가치를 비교해서 단추를 점화합니다, 이렇게 둘 다 한 번에 점화할 것입니다.
· kamo-internal
작성 가능한 필드를 감지 할 때 Acrobat 형식의 작업을 읽으십시오
Pdf.js는 /AA의 JavaScript로 필드의 의도 형식을 저장합니다. 작업으로 표면. 파일 형식. 그것은 오히려 추측보다 저자의 선언이다 필드 이름에서, 그래서 이제는 이름을 outranks/caption heuristic: - AFNumber Format -> 통화 문자열을 나타낼 때 통화 - AFDate Format/AFDate FormatEx -> 날짜, AFTime Format -> 시간 - AFPercent Format -> 번호 - AFSpecial Format(n) -> zip / zip+4 / 전화 / SSN - Calculate 동작은 필드가 계산되므로 read-only를 가져옵니다. 또한: 통제가 지금 성장하는 것보다 서명 또는 초기 위젯 Thinner 아래쪽 가장자리에서 PDF 서명 필드는 종종 키가 크기 때문에 인쇄된 규칙으로 그것은 앉고 잉크는 선의 위 속합니다; 그리고 순수한 XFA 문서는 "필요할 수 없는 필드"로 읽는 대신 보고됩니다. AcroForm 탐지가 볼 수 없는 XML에 살고 있는 분야. pdf.js 4.10.38에 대한 검증된 단위 제품군에 따라.
· kamo-internal
작곡가의 코퍼에 새로운 회의 링크를 삽입
구성 창에 footer 액션을 추가하여 회의를 만듭니다. 조직의 형성된 공급자는 몸에 결합한 연결을 쓰고 걱정이 될 때. 회의 - invite toggle의 Distinct : 그것은 달력을 첨부 한 번에 초대, 참석자 및 알림, 이 중 하나는 클릭 "그녀는 방, 올 때마다"예시에는 URL이 필요합니다. 주의사항은 클릭의 blur를 통해 추적됩니다. 회원이 메시지의 상단보다 오히려 입력 한 토지. create-and-linkify는 초대 작곡가를 이미 공유했습니다. 회의가 연결되는 방법의 한 가지 정의가 있습니다. - Kamo's own /meet/join/<id> 리디렉션, 공급자 인식 및 사인 Kamo 회원은 자주 묻는 질문.
· kamo-internal
작성 가능한 PDF의 AcroForm 필드를 기본 Kamo 필드로 재구성
문서 편집기에서 편집 가능한 PDF를 열어 이제 AcroForm 위젯을 읽습니다. pdf.js 문서의 주석을 제거하고 DesignField로 각각 재구성합니다. 동일한 페이지, 동일한 위치와 크기, 가장 가까운 일치 Kamo 분야 유형. untouched 디자인에 분야는 자동적으로 둡니다 (하나 undo step, undo action on the notice; 그렇지 않으면 도구 상자는 제공 이 페이지는 자동으로 번역 되었다. 원래 페이지는 자동으로 번역 되었다. 원래 페이지는 자동으로 번역 되었다. 원래 페이지: English version: https://www.booking.com/wp-content/uploads/2017/12/icoschedule.html - app/lib/esign/acroform.ts: 순수한 탐지. Widget rects는 변환됩니다 페이지 뷰포트 그래서 페이지 /Rotate는 영광입니다. 구조적인 mapping 덮개 Sig/Btn/Ch/Tx (push 버튼과 숨겨진 위젯은 떨어졌다); 텍스트 위젯을 얻을 semantic pass over the tooltip, 필드 이름 과 caption 인쇄 된 그들 페이지에 "Borrower Signature"가 서명 상자가되고 "Signature Date" 날짜. 라디오 단추는 그들의 개인적인 상자를 지키고 있습니다 묶어 공유 connectedGroupId를 통해. - DesignField는 필드 옵션 계약과 일치하는 옵션 옵션을 얻습니다. signer app는 이미 받아들입니다; 재산 패널은 지금 그(것)들을 편집하고, 또한 할 수 있습니다 다른 signer에 필드를 재 할당합니다. pdf.js 4.10.38에 대한 검증 된 실제 pdf-lib-build 양식을 파싱 Unit Suite에 추가됩니다.
· InitializerService
이메일 search vector 컬럼을 생성하고 그에 거꾸로 인덱스
**************** 결코 존재하지 않습니다. 이메일서비스 V1 email metadata schema.sql은 그것을 선언하지만 마이그레이션은 결코 ran -- 테이블은이 서비스의 엔터티 스캔에서왔다, SearchIndexEntity omits Hibernate가 TSVECTOR를지도 할 수 없기 때문에 필드는 ddl-auto가 추가 할 수 없습니다. ****************는 SQLSTATE 42703에 실패했습니다 모든 메시지, 그리고 UPDATE는 행 삽입으로 거래를 공유하기 때문에, 삽입은 뒤로 구른다. 테이블은 항상 비어있고 이메일 검색이 있습니다. 결과를 반환하지 마십시오.
· kamo-internal
메시지의 모든 이름 뒤에 접촉 카드
읽는 전망에서 보이는 각 사람은 죽은 끝이었습니다. Cc는 displayNameFor(a).join(', ') - 주소가없는 디스플레이 이름의 comma 벽, 아니 hover, 행동 없음. 세 가지가 잘못되었습니다. 이 주소는 uncoverable 및 표시 이름은 공격자 통제되는 우두머리 원본, 이렇게 2입니다 Chris 라고 하는 사람들 indistinguishable 하 고 누군가의 주소를 복사 CC'd는 응답을 열고 칩을 검사하는 것을 의미했다. 모든 것 조직은 이미 그 사람에 대해 알고 - 동료 기록, 주소 책, 아바타, 라이브 출연 - 주소로 해결하고 화면에 도달하지 않습니다. 그리고 1개의 읽을 수 있는 선으로 렌더링되는 4teen-recipient 실. 이름이 이제 카드를 엽니다. 주소 판은 오히려 그것의 centerpiece입니다 회색 자막보다, 주소가 카드가 손에 존재하기 때문에 : 가득 차있는 폭, 단청, 잉크와 도메인 라이터에 있는 국부적으로 부분, 전체적인 판 사본 성공에 따라 메시지를 강조하는 제어, 여전히 자주 묻는 질문 그것의 주위에, 단지 행이 있는 그(것)들의 무언가: 직업 제목, 고용주, 부, 다이얼 번호 softphone, 동료의 확장, 당신이 그들을 호출하기 전에 그들의 현지 시간. Colleagues는 기존의 존재와 가용성에서 살아있는 존재를 수행 계정 관리 자동화된 발송자는 이렇게 말하고, no-reply 주소는 제안하지 않습니다 mailbox는 거부 할 것입니다. 개수 뒤에 5개의 이름 붕괴를 과거에 재연 목록. mechanics는 useHoverCard에서 살고, 카드에서 멀리, 그 중 아무도이기 때문에 사람들: hover intent 그래서 포인터 횡단 헤더는 불 카드하지 않습니다, 가까운 은혜 기간 그래서 카드의 대각선 경로는 그것을 해치지 않습니다, 하나 카드는 한 번에 열려, 팬 스크롤 또는 기록 땅 때 재 측정, 그리고 진짜 단추 그래서 키보드 및 접촉은 전부에 그것을 도달합니다. 키보드 초점 opens - 클릭 초점에 행동은 같은 클릭으로 카드를 열 것입니다. toggles 그것은 종료, 그리고 칩은 마우스에 inert. 레코드는 contactentStore에서 제공, 주소로 키 입력하고 결코 합병 메시지 객체: 모두 목록 보기 poll 모든 thirty 초 및 교체 메시지 어레이 도매, 어느 것이 든 지 두 번 수행 할 것. avatars와는 달리 그들은 lazily를 해결 - 전체 헤더는 메시지가 될 때 prefetched opens, hovering 커버 아무것도 놓친 — 그래서 카드는 일반적으로 이미 그것을 시작했을 때. formatAgo는 memberItem에서 움직입니다. 로스터와 카드는 동일합니다. 같은 방법이 없습니다.
· EmailService
메시지의 주소 뒤에 사람들을 해결
메시지 헤더는 주소와 어떤 표시 이름 sender 선택 그것을 넣으십시오. 조직은 이미 훨씬 알고 있습니다 - 동료, 주소 책, 확장, 시간대 — 그리고 그 중 아무도 mailbox에 도달. POST ****************는 주소의 일괄 답변 각 뒤에 사람: 동료 (작업 제목, 부서, 연장, 시간대에 그리고 회원 ID는 존재와 채팅을 잠금 해제), 저장된 접촉 ( 고용주와, title and number), 또는 명시된 EXTERNAL 그래서 콜러는 답변을 캐시 할 수 있습니다 모든 hover에 재작업 대신. avatar endpoint와 분리하여 접히지 않도록 합니다. 이름 * 하나는 necessity에 의해 두 단계입니다 - 전체 놓치는 DNS 플러스 4 HTTP 호출을 의미 할 수 있습니다 제 3 자 — 그리고 이것은 지역, 색인, org-scoped는 그것을 읽습니다 첫번째 호출에 완전히 대답할 수 있습니다. endpoint 공유하기 "ask again later"계약을 상속하는 비동기 반은 필요하지 않습니다. 베어 주소에 열쇠가없고 디스플레이 이름에 절대 없다. attacker-controlled text: 아우터는 동료의 실제 이름을 설정할 수 있습니다. 이 기록은 colleague의 직접 다이얼 확장을 수행한다. 정상적인 현재 avatar endpoint (MailboxAddress)와 공유되는 시행 두는 출발을 무수하고 다른 캐시 항목을 놓을 수 없습니다. 조직은 세션에서 온다, 결코 요청하지 — endpoint 답변 "이 열렬한이 주소에 대한 기록을 보유"회원 oracle if the caller picks 그만큼 tenant. 문자열로 직렬화 Ids: CockroachDB 행 ids는 MAX SAFE INTEGER를 과거 실행하고, EmailService는 메시지 uids가 길기 때문에 Global Long-to-string mapper가 없습니다. mailbox 정면 끝은 진짜로 숫자로 대우합니다.
· kamo-internal
리소스 탭은 org의 HR 문서 라이브러리입니다
문서 수집에 DocManager와 리소스 위너를 대체합니다. 자체 — ImageAssocType.HR RESOURCE, 버킷 이미징 시간 자원 — org-scoped 마케팅 자료는, deliberately 그것에서 분리됩니다: 마케팅 플라이어와 직원 수첩은 1개의 도서관에 속하지 않습니다. assoc 유형은 enum's ORDINAL (13)로 보내지며, id (15)는 아닙니다. 영상 backends는 값()[assocType]과 두 개의 다이브레이터로 해결합니다. enum 건너뛰기 id 6; id를 보내 다른 수집의 물통, 내 Docs 표면이 한 번 배송 된 문서는 다시 읽을 수 없습니다. HR RESOURCE ASSOC TYPE는 일정한 것에 그 이유를 가지고 있습니다. DocsService 및 ConversionService는 새로운 일정을 위해 재건축되었습니다. — 프론트엔드는 13, 그래서 마지막 땅을 보낼 유일한 것입니다.
· kamo-shared-library
HR RESOURCE는 org HR 리소스 라이브러리의 유형입니다
/hr 리소스 탭은 핸드북, 정책, 양식 및 참조를 게시합니다. 전체적인 팀에 물자, 그리고 기존하는 assoc 유형 적합: MY DOCS는 입니다 사람의 자신의 지역, SYSTEM WIDE의 물통은 전자 서명 템플렛이고, 물자는 입니다 마케팅 라이브러리 - 플라이어 및 직원 핸드북은 함께 속하지 않습니다. ORG-scoped는 HR curates 때문에, 삭제/배쓰기/폴더와 더불어 물자 같이, 이 손으로. Doc 유형은 허용되지만 선택 사항 (isAllowDocType=false, isAllowDocTypeOpt=true), 그래서 Handbook / 정책 / 양식을 원하는 org 범주는 파일 하나에 강제되는 다른 org없이 그들을 켤 수 있습니다. 마지막으로 Appended, 그래서 기존의 ordinal 교대. 그것의 ORDINAL 이다 13 동안 그것의 ID 이다 15 — enum 건너뛰기 id 6, 그리고 외침은 ordinal, 그래서 시험 핀 13 및 닻 물자/CATALOG SOURCE 그것의 측. 변환서비스 및 DocsService는 종단에 의해 enum를 색인을 붙이고 아무것도 보내기 전에 재건해야 합니다 13, 또는 값()[13] 그들의 짧은 배열에 던져.
· kamo-internal
인간의 자원 모듈 쉘 5 개의 경로 백업 탭
/hr를 경로 백업 형태로 계정 페이지 크롬으로 추가하십시오 (동일한 것 /marketing 이미 사용) : gradient 영웅과 밑줄 탭을 소유 한 레이아웃 바, 첫 번째 도달 가능한 탭에 착륙하는 인덱스, 그리고 각 페이지 개요, 출석, 법률 및 규정 준수, 교육 및 자원. 두 개의 문, 모두 필요. 사이트맵 Hrs - 아래 HRS toggle /settings/account?tab=apps — 앱이 꺼졌을 때 경로 홈을 반송합니다. /hr 는 org 의 존재가없는 곳입니다. 앱으로, eleven 기존 ServiceType.HRS 권리 결정: 새로운 hasAnyHrRight 화합물 문 가입 **************** 및 각 탭은 OR-group predicate (HR은 단일 보기가 올바른 방법 마케팅이 없습니다). 탭 회원은 바에서 숨겨져 직접 URL 입력을 거부합니다. 설정 위의 nav 레지스트리에서 'hr'를 등록하고 기본으로 철도; 홈-launchpad 카드 및 명령 팔레트 항목은 레지스트리에서 따릅니다. 회원가입 레지스트리 주문 혼자 단지 첫 번째 실행 회원, 비록 — orderZone appended never-arranged ids, 그래서 누군가가 자신의 nav를 터치했다 HR *below* 설정이 있습니다. mergeCanonicalOrder 이제 같은 ids를 삽입 위치 레지스트리 요청 및 useHomeLayout 같은 규칙을 사용, 그래서 지정된 배치는 기존 회원과 모든 미래의 옵션을 보유하고 있습니다. Tab body는 placeholders입니다 : 백엔드에서 HR 데이터 모델이 없습니다. 아직 (직원, 출석, 급여, 교육 또는 준수 기관 없음) SecurityService, APIService 또는 공유 라이브러리), 그래서 각 탭은 자체와 그것이 보유하는 것. docs/superpowers/specs에 있는 Spec.
· kamo-internal
통신 탭 완료
각 하위탭은 이제 자체 데이터를 보유하고 있으며, 모든 채널을 날짜로 나뉩니다. 노트는 MediaStream을 유지, 메모가 여기에 승인되기 때문에 — but readOnlyChrome 사회적 책임은 고객 레코드를 사용할 수 없습니다 : PUBLIC / 작곡가의 PRIVATE accessor 및 각 게시물, 저자 편집 / 삭제 메뉴, 그리고 같은 / 코멘트 / 그것의 주석 스레드와 행 공유. 실시간 채팅 SocialConversationView. 모든, 통화, 텍스트 및 이메일은 새로운 렌더링 EmailEntry는 한 줄에 메시지를 붕괴합니다. sender, subject, opening word — 그리고 장소에 확장. 리드의 대응은 수백 개의 메시지로 실행할 수 있습니다. 그리고 전체 높이에서 렌더링 탭을 사용하지 않습니다. 몸은 아니다 행이 열릴 때까지 fetched, 모든 읽기는 라이브 공급자 라운드이기 때문에 여행; 그런 다음 SanitizedEmailRenderer /messages 사용, 그래서 두 번째가 없다, 덜 위탁되지 않은 HTML의 경로. 길을 따라 고정 : PostCard의 편집 메뉴 항목 handleMenuClose라고, 그래서 있었다 편집기를 열지 마십시오. MediaStream은 PostCard의 onPostDeleted / onPostUpdated 완전히, 그래서 삭제 또는 편집 된 게시물은 오래된 화면에 머물 풀 리로드까지 양식. Hardcoded "Public"/"Private"/"Post" 작곡가 이제 이미 존재하는 사전 키를 사용합니다.
· SecurityService
통합 통신 타임라인 API
*** * *** 한 날짜 주문 페이지를 반환 메모, 통화, 음성 메일, 텍스트, 이메일 및 채팅; ?channel= 좁습니다. 3개의 근원은 합병됩니다. Calls, voicemails, texts 및 전자 메일이 옵니다. LEAD COMMUNICATIONS 협회; 노트 및 채팅은 직접 읽기 리드의 미디어 스트림과 소셜 세션, 이미 리드 키드 인 때문에 — 그(것)들을 미러링하면 듀얼-쓰기 견실함 문제를 추가하고, back-fill, 이미 존재하는 모든 메모 및 채팅 메시지 손실. Paging는 keyset, 상쇄하지 않습니다. 병합 소스의 상쇄는 잘못된 과거 페이지입니다. 1 : 각 소스가 변화하는 방법, 그래서 "skip 25"에 착륙하지 않습니다 모든 페이지는 동일하고 아무것도 건너 뛰거나 반복되지 않습니다. 여러 항목이 타임스탬프를 공유 할 때에도. Authorisation는 리드 세부 게이트를 정확히 미러링하고 있습니다. - 항목은 크게 리드의 자신의 접촉 값 플러스 내용 교환, 그래서 콜러 VIEW LEAD CONTACT INFO OTHERS 없이 다른 사람의 리드를 사용할 수 없습니다. 이 endpoint를 읽으십시오. 부인은 감사, 그냥 성공하지. 전자 메일 바디 엔드포인트는 협회의 사서함이 아닌 콜러에서: 리드 메일은 org-wide, 그래서 메시지는 종종 생활 colleague의 mailbox 및 UID는 폴더 내에서만 고유합니다. — 브라우저 구동 fetch는 자동으로 뷰어의 사서함에서 관련 메시지를 반환합니다. MediaAssetUrls는 avatar/image URL 빌더를 추출합니다. MediaStreamController, 그래서 포스트 저자는 노트 탭과 동일하게 렌더링 모든 탭.
· DaemonService
Mail-to-lead 협회 청소
EmailService의 내부 스윕 엔드 포인트에 대한 5 분 진드기, 미러링 VoipGlobalSyncJob입니다. emailService가 몇몇을 실행하기 때문에 여기에서 일정 팟과 @Scheduled bean은 모든 복제가 매끄럽게 할 것입니다. 한 번에 mailbox. @DisallowConcurrentExecution plus finite HTTP 타임 아웃 : 모든 것을 청소 mailbox는 진드기를 초과할 수 있고, 감시 석영 없이 겹쳐 쌓일 것입니다 EmailService 내부의 모든 worker 스레드 sat. 같은 timeouts 사정 이유 - 자리에서 concurrency 가드와 함께, 한 무한-hung 통화는 pod가 재시작할 때까지 다시 실행할 때 청소를 중지합니다.
· EmailService
Associate 리드 대응, 그리고 죽은 푸시 인덱스를 수정
리드 통신 탭의 메일 반 추가, 그리고 ingestion 그것 필요 모두에 존재합니다. 플랫폼에는 작업 메일 푸시가 없습니다. IMAP IDLE은 Dovecot에 하드 코딩되어 있습니다. Graph 변경 주석 또는 Gmail 시계 및 MessageIndexer가 표시되지 않습니다. IDLE 발행인이 UID를 제출했기 때문에 모든 알림 uid<=0 가드 리젝트 - 또한 sender에서 멤버를 해결했습니다. mailbox 소유자 보다는. 둘 다 여기 고정, 하지만 그 경로에 걸이 혼자 것 여전히 대부분의 10 종자에 대한 아무것도하지 않았다, 그래서 협회는 청소에 의해 구동된다 MailReader를 통해 각 mailbox를 통해, 이는 건축에 의해 공급자 aagnostic입니다. 타임스탬프에 대한 청소 페이지는 UID가 아닙니다. UIDs는 모노토닉에서만 IMAP UIDVALIDITY epoch; 높은 물 표 위험은 mailbox를 침묵 re-examining는 연결하기 때문에 자유롭습니다. 제품정보 AddressResolver는 소유자의 규칙을 구현합니다. 메시지를 절대로 리드의 일치 주소와 다른 참가자는 모두 회사 소유 — 그렇지 않으면 colleague의 일 주소를 리드에 추가 내부 메일을 노출합니다. 그것은 폐쇄 실패 : 재고가로드 할 수없는 "unknown"과 협회는 "외부"에 응답하는 것보다 건너 뛰고 있습니다. 그리고 조용히 감시를 해제. ****************는 mailbox를 대신하여 신체를 태워 관련 기사 일반 엔드포인트는 콜러 공급자를 해결하고, UIDs 폴더 내에서만 독특하므로 다른 회원의 UID가 반환됩니다. 오류 대신 관련 메시지. SecurityService에서 Authorisation 생활, 브라우저에서 오히려 협회의 메일 박스를 해결합니다. 보낸 시간에 연결은 시도하고 제거되었다 : SMTP는 메시지 ID를 반환 또한 센드 UID, 그래서 모든 아웃 바운드 메일은 한 협회에 붕괴 위치가 확장되지 않습니다. 청소는 그것을 소유합니다.

당신의 우주는 기다리고 있습니다.
몇 분 안에 무료로 시작하세요. 준비가 되면 언제든지 제품을 추가할 수 있습니다.
영원히 무료 - 신용 카드 필요 없음