NDA · PT Sample Counterparty
Tujuan / Ringkasan
NDA covering preliminary JV discussions for forestry-segment parts distribution. 24-month confidentiality, counterparty requested 30-day return on signed.
An upgrade to the existing swiftrise-my-approval-* repos that turns it into the management team's document approval system across MPA Group entities. Same codebase, new capabilities: document typology, EXTERNAL routing, multi-signer light eSign, paper-trail awareness, audit-locked.
An in-place evolution of the existing swiftrise-my-approval app into the cross-entity document approval system for the management team. v0.1 covers in-app + email/Teams notifications. WhatsApp, PSrE eSign and DocGen sync land in v2.
11 published Surat Edaran already have anomalies: 01 / 03 duplicated, 04 year typo, 09 unnumbered. No register, every issuance is hand-checked.
Approvers receive paper, take it home, return it days later. Nobody knows where the doc is. Wet-ink takes a week with zero visibility.
An NDA to a regulator and an internal JD use the same form, same routing, same defaults. Nothing flags EXTERNAL for legal review or SLA.
No new repos. No "DocApprove" sibling app. The dev team creates feat/v0.1-doc-upgrade on both swiftrise-my-approval-api-nest and swiftrise-my-approval-dashboard-react, lands all the changes there, then merges to main when QA passes.
The paper form has three decision boxes: Disetujui, Disetujui dengan perubahan, Ditolak. The current code only models two of those, plus a generic "Submitted". We expand the enum so semantics map cleanly.
Devs read this row by row. Nothing the paper form does is lost. Existing columns reused where they fit.
Uses the SwiftRise design system already in swiftrise-mandala-dashboard-react — Inter font, accent green #12664E, shadcn-style border-and-radius primitives, Heroicons. No new components invented. Layout copies MainLayout.tsx (sidebar drawer + topnav on mobile, fixed sidebar on lg).
Eleven screens cover the full submitter and approver journey on mobile. Each component reuses something already in the mandala repo: ApprovalProgressBar for chain visualization, ActivityInfoCard for created/signed metadata, Button with the primary variant for CTAs, InfoSection for grouped fields.
The mandala visit-approval page is the closest structural reference. the dev team should start there.
Note the time strip on screen 02 (Detail) and the dedicated Insights screen (11) — both surfaces of the same data: request_approvals.activated_at and actioned_at. Cycle time is a first-class concept, not buried.
Two artifacts, never confused. Screen 03 (Preview) shows the source PDF the submitter uploaded, never modified by the system. Screen 06 (Proof) shows the system-generated approval proof PDF — a separate file that references the source, lists the chain, and embeds the signatures. The proof is the audit artifact.
This Agreement governs the exchange of confidential information between the Parties in connection with preliminary discussions regarding a potential joint venture covering distribution of undercarriage parts to the forestry segment in Indonesia.
"Confidential Information" means any non-public information disclosed by either Party in any form, including pricing, supplier lists, technical specifications, and customer data.
This Agreement remains in force for twenty-four (24) months from the Effective Date, after which obligations of confidentiality survive for an additional thirty-six (36) months.
Neither Party shall solicit the employees of the other for a period of twelve (12) months from termination.
Clause struck per Legal Reviewer note 14 May. See revision log.
Light eSign is defensible internally. Not PSrE-binding. For court-enforceable contracts use PrivyID or Mekari (planned for v2).
NDA for preliminary JV discussions on forestry-segment parts distribution. 24-month confidentiality, governing law RI.
Disetujui dengan perubahan. Tgl berlaku: upon counter-signing. Tgl review: 15 Jun 2027.
"Approved subject to: (1) Section 4 confidentiality term to 24 months, (2) Section 7 non-solicit struck, (3) Annex A with subsidiary list included at signing."
supersedes_file_id and tagged with a note.lg: breakpoint up.Desktop puts the preview on the right and keeps it visible while the approver reads the metadata, scans the chain, and decides on the left. Same React code as mobile; the layout collapses to single-column under 1024px. Three columns: mandala sidebar, document detail, always-on preview pane.
NDA covering preliminary JV discussions for forestry-segment parts distribution. 24-month confidentiality, counterparty requested 30-day return on signed.
Approvers stop scrolling between metadata and the document itself. The preview is always visible while they read the chain, check timing, and click Approve. Removes the cognitive cost of context-switching.
Under lg: (1024px), the preview pane collapses to a tab in the detail screen — mobile flow takes over. Above it, the three-column layout activates. No separate desktop build.
The preview tab strip ends with a Proof tab. While the request is still in review it shows "Proof (pending)". On APPROVED it activates and renders the generated proof PDF in the same pane. One surface, two artifacts.
M0 is the in-place foundation: Postgres + multi-tenant + management gate on existing repos. M2 is the highest-risk milestone (signature evidence).
feat/v0.1-doc-upgrade on both repos. MySQL → Postgres migration, multi-tenant middleware on existing request_* tables, management-only RBAC gate.document_types + departments, replace RequestApprovalTemplate with approval_matrix, add new columns to requests, add revision columns to request_files, add activated_at + sla_hours to request_approvals, EXTERNAL side effects.request_signatures + user_signatures + request_approval_proofs, mobile signature canvas, per-signer evidence capture, revision history view, PDF.js inline preview, generate the approval proof PDF (provisional on APPROVED, finalized on full-signed) with verify link.paper_signing_log, custody UI, WET_INK flow, one-way export of approved PDFs to SharePoint, time strip on document detail (per-step elapsed).request_metrics_cache denormalized view, Insights screen (bottlenecks + benchmarks + per-approver speed), Teams Adaptive Cards, email via Graph, cross-entity inbox, SLA cron, Codex review, UAT with one sitting director.v0.1 ships an in-app + email/Teams approvals system. v2 expands channels and provider integrations. WhatsApp is the most-requested v2 item.
Meta-direct, not BSP. Templated assignment messages with Approve / Reject / View buttons. Reason captured by reply. Deep-link to app for signing. Fallback to Teams + email if WA delivery fails. Templates take 1–3 days each to clear Meta review.
v0.1 accepts PDF only. v2 adds server-side conversion via LibreOffice headless or Gotenberg, plus the columns to track conversion state (preview_status, preview_error). Submitters export to PDF themselves until then.
Highlights, sticky comments anchored to coordinates, redlines, freehand markup. Annotations attach to a specific revision so they do not drift when a new version is uploaded. Unresolved annotations block approval; resolved ones grey out. Storage: request_file_annotations with author, kind, page, coords, body, resolved-by.
PrivyID or Mekari Sign for court-binding signatures under UU ITE. Trigger only for signing_method=PROVIDER_ESIGN. ~Rp 20–50k per signature.
v0.1 ships export only. v2 adds: drop a draft into a watched SharePoint folder, DocApprove auto-creates the request.
Wire swiftrise-docgen-api-nest directly into request creation. Generate SOP / JD / SE draft from structured input, skip the upload step.
Joseph signs off, work lands on feat/v0.1-doc-upgrade on both my-approval repos, merges to main when QA + UAT pass. Codex reviews before deploy. Org-visible actions wait for go-ahead.