Trục 6: Mẫu

Mẫu danh mục OSCAL

Bản thảo

GCBoK định nghĩa các phân loại tuân thủ của Đức dưới dạng các danh mục OSCAL - một điểm mới trên thị trường:

oscal_catalog:
  groups:
    - id: "gobdControls"
      title: "GoBD - Nachvollziehbarkeit"
      controls:
        - id: "GOBD-01"
          title: "Progressive Navigation"
          description: "Jeden Geschäftsvorfall rückwärts verfolgbar"
    - id: "bsiControls"
      title: "BSI IT-Grundschutz Module"
      controls:
        - id: "APP.3.1.A1"
          title: "Datensicherung"
    - id: "dsgvoControls"
      title: "DSGVO Anförderungen"
      controls:
        - id: "DSGVO-Art.17"
          title: "Recht auf Vergessenwerden"

Mẫu Policy OPA

Bản thảo

Ví dụ về một Policy Rego để xác thực chứng từ:

package gitcover.compliance

deny[msg] {
    input.class == "INVOICE"
    not input.prev_sha256
    msg := "INVOICE muss prev-hash referenzieren"
}

deny[msg] {
    input.class == "PAYMENT"
    not input.gpg_fingerprint
    msg := "PAYMENT muss GPG-signiert sein"
}

allow {
    count(deny) == 0
}

Lược đồ V7GUID

Bản thảo

Lược đồ siêu dữ liệu V7GUID chuẩn tắc:

v7guid: "0197a3b2-f3c0-7b00-8001-000000000042"
class: INVOICE          # PERSON | INVOICE | PAYMENT | CONTRACT | ...
sha256: "7d4e2f..."
prev_sha256: "3f2a1c..."  # null für Genesis-Beleg
gpg_fingerprint: "ABCD1234..."
timestamp_iso: "2026-06-14T11:18:00+02:00"
gobd_periode: "FY2026"

Độ sâu tuân thủ → Phân tầng lược đồ V7GUID

Tùy theo độ sâu tích hợp của kho Gitmức yêu cầu tuân thủ mà cần những lược đồ JSON V7GUID khác nhau. GCBoK định nghĩa một phân tầng lược đồ (mô hình phân bậc), được gắn liền với VariantId, kindstatus:

Tier Mức yêu cầu tuân thủ Các trường lược đồ bắt buộc VariantId kind status
T1 Chỉ GoBD/AO (Tối thiểu) v7guid, class, sha256, prev_sha256, gpg_fingerprint, timestamp_iso, gobd_periode 10 (lưu trữ 10 năm theo §147 AO) INVOICE, RECEIPT, CONTRACT ACTIVE
T2 PII / DSGVO T1 + tenant_id, org_unit_id, data_category (Art. 9 DSGVO), retention_legal_basis 11 (cấp độ bảo vệ DSGVO) PERSON, HR_DATA ACTIVE
T3 NIS2 (Hạ tầng trọng yếu) T2 + risk_level, incident_reporting_obligation, supply_chain_tier 12 (cấp rủi ro NIS2) INFRASTRUCTURE, LOG_DATA ACTIVE
T4 ISO 27001 (Đầy đủ) T3 + control_id (ISO 27001 Annex A), asset_classification, treatment_plan_ref 13 (IFRS/HGB + ISO) POLICY, AUDIT_EVIDENCE ACTIVE

Nguyên tắc: „Cuối cùng chỉ còn lại các kho Git" — phương án dự phòng khi kiểm tra/kiểm toán là Code-Artifacts + các Registry/Dictionary .gitcover ở định dạng JSON/JSONL. Gói HTML dành cho kiểm toán viên chỉ là bản trình bày; điều tra pháp chứng là kho Git (xem Quy trình: Audit-Readiness và bản phái sinh gcbok-audit-evidence-docs/docs/02-audit-website-als-pruefungsartefakt).

Các tệp lược đồ được lưu trữ có phiên bản trong .gitcover/schemas/ của TOP-Repo và được làm cho có thể phân giải qua others.json.

Mẫu Container DMS

Container .v7g.zip dành cho GCDMS (phạm vi tùy thuộc vào use case):

document.v7g.zip
├── .v7g.md          # Metadaten, ggfs. mit Strukturinformationen in Markdown Artefakten (JSON/YAML/XML, SHA256 Hash des Urdokuments, etc.)
├── .v7g.sig         # GPG-Signatur
├── document.pdf     # Originaldokument (Urdokument)
├── document.json    # Maschinenlesbare Extrakte
├── document.xml     # Maschinenlesbare Extrakte (z.B. X-Rechnung)
└── attachments/     # Anhänge

Lựa chọn định dạng tùy theo use case

Định dạng Cách sử dụng
.v7g.json Đọc được bằng máy, Policy OPA, xuất OSCAL
.v7g.md Siêu liên kết, con người đọc được, Git-Web-UI
.v7g.yaml Tệp cấu hình, chỉnh sửa được bởi con người

Mẫu Sidecar V7GUID

Sidecar chuẩn tắc (*.v7g.md) cho một tài liệu gốc dạng số. Lược đồ: https://gitcover.org/schemas/v7g-sidecar-1.0.schema.json; siêu dữ liệu thực thể tuân theo record-metadata-1.0.schema.json (ISO 15489).

DocID = uuidv7 (định danh thực thể) so với v7guid (định danh lớp/ngữ cảnh). Cả hai đều được quản lý trong sidecar và được liên kết với nhau qua composite_key ({v7guid}:{uuidv7}). Nội dung tối thiểu: sha256 của tài liệu gốc.

# V7G Sidecar - {original_filename}

**SHA-256:** `{sha256}`
**Tenant:** {tenant}
**Kategorie:** {category}
**Sphäre:** {sphere}
**Tags:** {tags}

```json
{
  "$schema": "https://gitcover.org/schemas/v7g-sidecar-1.0.schema.json",
  "uuidV7": "{uuidv7}",
  "sha256": "{sha256}",
  "title": "{original_filename}",
  "original_filename": "{original_filename}",
  "locations": [
    { "unc_path": "./{tenant}/{path}", "from": "{YYMMDD}", "to": null, "note": "Primärspeicherort" }
  ],
  "v7g_taxonomy": [
    { "v7guid": "{v7guid}", "taxonomy": "{tenant}/{taxonomy}", "valid_from": "{YYMMDD}", "valid_to": null }
  ],
  "gcpn": { "prima_nota_ref": null, "journal_entry_ref": null },
  "obsolescence": { "status": "active", "superseded_by": null, "last_checked_at": "{ts}", "last_checked_by": "{user}" },
  "verification": { "verified_at": "{ts}", "verified_by": "auto", "method": "sha256_file", "intact": true },
  "tags": ["{tag}"],
  "sphere": "{sphere}"
}
```

Cấp phát DocID: Khi tài liệu được thêm mới vào DMS, công cụ sidecar sẽ tạo một UUIDv7 từ một đối số TimeStamp làm DocID (uuidV7). Nguồn mặc định là mtime của tệp; nếu tên tệp hoặc nội dung cung cấp một ngày tháng nghiệp vụ, ngày đó sẽ được sử dụng (xem Trục 5: Quy trình).