# CCS PDF Editor — System Profile

| Field | Value |
|-------|--------|
| **Version** | 1.5.40 |
| **Owner** | CCS Information Technology |
| **Approved by** | CCS Information Technology |
| **Last updated** | 2026-08-15 |
| **Review frequency** | Annual (or after significant architectural / host change) |
| **Next review** | 2027-08-05 |

This profile records system identity, ownership, classification, and environment-specific hosting details.

Complete bracketed fields **per environment**. Store the completed production copy with CCS IT change/CMDB records as applicable.

---

## System identification

| Field | Value |
|-------|--------|
| **System name** | CCS PDF Editor |
| **Product version** | **1.5.40** (see [VERSION](../VERSION); cache-bust `config.js` → `1.5.40-redact-select-ux`) |
| **Also known as** | CCS Editor, pdf-edit, PDF Editor OWA, CCS PDF Editor (Windows) |
| **Type** | Internally developed **static web application** (client-side); optional **Windows WebView2** shell and offline browser pack |
| **Primary purpose** | Offline-capable view/annotate/OCR/fill/design/export of PDF documents (including form fields and optional password protect), without sending document bytes to a CCS application API |
| **Business owner** | Community Counseling Solutions (CCS) — operational leadership as designated for document workflows |
| **Technical owner** | CCS Information Technology Department |
| **Application custodian** | CCS Information Technology Department |
| **Support contact** | IT Helpdesk — ITHelpdesk@ccsemail.org |
| **Security / privacy escalation** | CCS Incident Response process (via IT Helpdesk) |

No individual employee is the sole owner, custodian, or maintainer of this application ([LICENSE](../LICENSE)).

---

## Data classification

| Field | Value |
|-------|--------|
| **Default classification of the *application package*** | Internal |
| **Classification of *documents users open*** | **As classified by the document owner** — may include **Internal, Confidential, or PHI** |
| **Does the application server store documents?** | **No** (static asset host only; document processing is client-side) |
| **Implication** | Host security still matters (supply integrity of JS). **User devices and save locations** hold the sensitive content. Treat per CCS workstation, network share, and records policies. |
| **Enterprise SRA / HIPAA Security evaluation** | _[Last included: YYYY-MM-DD / ticket # — see GOVERNANCE]_ |
| **BAA — cloud PDF / OCR vendors** | **N/A** for the current release (no cloud document processing). Reassess if a future release adds SaaS conversion. |

Retention of saved files is determined by **CCS records / department policy** for the *document*, not by this application (the app has no server-side retention engine).

---

## Hosting & runtime

| Field | Value (complete for each environment) |
|-------|----------------------------------------|
| **Primary runtime** | End-user **browser** and/or **Windows WebView2** package (`CcsPdfEditor.exe`) |
| **Static host location** | _[e.g. on-prem web server / path / site]_ |
| **Public URL path** | _[e.g. https://intranet.example/pdf-edit/ ]_ — must match `manifest.json` `start_url` intent |
| **Application path on disk** | _[e.g. /var/www/pdf-edit]_ |
| **Document root** | Application root (static files; `index.html` or hosted `app/`) |
| **Windows package path** | _[e.g. \\\\share\\CCS-PDF-Editor-Windows-1.1.0\\ if used]_ — install steps: [WINDOWS-INSTALL-SOP.md](WINDOWS-INSTALL-SOP.md) |
| **Database** | **None** |
| **Authentication (app)** | **None built-in** — access control is via **network / reverse proxy / intranet SSO in front of static host**, if configured |
| **TLS** | _[reverse proxy TLS — topology]_ |
| **Internet egress required for editing?** | **No**, when assets are fully local under `lib/` and `assets/` |

Maintain one completed copy of this table **per environment** (production OWA, lab, Windows pack share if used).

---

## Backup & disaster recovery

**User documents are not stored by this application.** DR focuses on **re-publishing the static app** and on **normal backups of user/network file stores** where staff save PDFs.

| Field | Value |
|-------|--------|
| **RTO (app availability)** | _[default **72 hours** unless CCS sets otherwise]_ |
| **RPO (app code package)** | _[default **last approved release** — no in-app transactional data]_ |
| **RPO (user documents)** | Owned by **file server / OneDrive / endpoint backup** policy — **out of band** for this app |
| **Backup method (app)** | Version-controlled source + release copy of static tree; host config per CCS standards |
| **Last app restore / re-deploy test** | _[YYYY-MM-DD / pass·fail / ticket #]_ |

### What is restored vs rebuilt

| Layer | Backed up? | After restore |
|-------|------------|---------------|
| Static app files (`index.html`, `js/`, `lib/`, …) | Yes (release / git) | Re-copy to host document root |
| Web server / TLS config | Per host standards | Restore host config |
| User PDFs / `.ccspdf` on disk | **Not by this app** | Restore from endpoint or file-server backup |
| Browser memory / open tabs | No | User re-opens files |

---

## Key dependencies

| Dependency | Role | Notes |
|------------|------|--------|
| PDF.js | Render PDF pages + interactive form widgets | [NOTICE](../NOTICE) |
| pdf-lib | Merge pages, embed images, write AcroForm | [NOTICE](../NOTICE) |
| QPDF (WASM) | Content-preserving PDF password encrypt on export | Vendored under `lib/` |
| html2canvas | Flatten DOM overlays for export | [NOTICE](../NOTICE) |
| Tesseract.js + eng traineddata | Local OCR | Offline paths / embeds under `lib/` |
| Microsoft Edge WebView2 | Windows desktop shell host | Required for Windows package |
| Self-hosted fonts | UI typography | `assets/`, `fonts.css` |
| Browser File System Access API | Native Save As (Chromium) | Falls back to download modal |
| Optional Tauri | Desktop dialog + filesystem write | Separate release if used |
| Static web server | Serve assets | No app API |

---

## Capabilities snapshot

| Capability | Present when… |
|------------|----------------|
| Open / append PDF | Always (client) |
| Open `.ccspdf` project | Always (client) |
| Editor workspace (annotate) | Always |
| Form workspace (fillable fields) | Always |
| Annotate (text, shapes, images, tables, snip) | Editor workspace |
| AcroForm design (text, check, radio, dropdown, sig) | Form workspace; written on Save PDF |
| Local OCR (English) | `lib/` OCR assets present |
| Save project / save PDF | Always |
| Print | Browser print path |
| PWA install / file handlers | Browser + `manifest.json` support |
| Desktop save dialog | Tauri build with `__TAURI__` bridge |

---

## Related documentation

| Document | Purpose |
|----------|---------|
| [AUDITOR-FAQ.md](AUDITOR-FAQ.md) | One-page auditor cover sheet |
| [GOVERNANCE.md](GOVERNANCE.md) | Change management, residual risk, IR, evidence |
| [ARCHITECTURE.md](ARCHITECTURE.md) | Technical design & data flow |
| [HOW-TO.md](HOW-TO.md) | Staff landing how-to (`docs/index.html`) |
| [USER-GUIDE.md](USER-GUIDE.md) | End-user how-to |
| [USER-TRAINING.md](USER-TRAINING.md) | Training tracks |
| [DEVELOPMENT-STANDARDS.md](DEVELOPMENT-STANDARDS.md) | Coding / release rules |
| [marketing/index.html](marketing/index.html) | Browser-readable docs pack |
| [README.md](../README.md) | Deploy overview |
| [LICENSE](../LICENSE) / [NOTICE](../NOTICE) | Ownership / third parties |
