Trục 6: Mẫu
Mẫu danh mục OSCAL
Bản nháp
GCBoK định nghĩa các taxonomy tuân thủ của Đức dưới dạng 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 chính sách OPA
Bản nháp
Ví dụ về chính sách 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 nháp
Lược đồ siêu dữ liệu V7GUID chuẩn tắc:
{
"v7guid": "0197a3b2-f3c0-7b00-8001-000000000042",
"class": "INVOICE",
"sha256": "7d4e2f...",
"prev_sha256": "3f2a1c...",
"gpg_fingerprint": "ABCD1234...",
"timestamp_iso": "2026-06-14T11:18:00+02:00",
"gobd_periode": "FY2026"
}
classlà một trongPERSON | INVOICE | PAYMENT | CONTRACT | ...;prev_sha256lànullđối với chứng từ genesis.
Độ sâu tuân thủ → Phân tầng lược đồ V7GUID
Tùy theo độ sâu tích hợp của kho Git và yêu cầu tuân thủ, cần các lược đồ JSON V7GUID khác nhau. GCBoK định nghĩa một phân tầng lược đồ (mô hình theo cấp), được gắn với VariantId, kind và status:
| Cấp | 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 §147 AO) |
INVOICE, RECEIPT, CONTRACT |
ACTIVE |
| T2 | PII / DSGVO | T1 + tenant_id, org_unit_id, data_category (Art. 9 DSGVO), retention_legal_basis |
11 (mức bảo vệ DSGVO) |
PERSON, HR_DATA |
ACTIVE |
| T3 | NIS2 (Cơ sở hạ tầng trọng yếu) | T2 + risk_level, incident_reporting_obligation, supply_chain_tier |
12 (lớ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/đánh giá là artefact mã + sổ đăng ký/từ điển .gitcover ở định dạng JSON/JSONL. Gói kiểm tra HTML chỉ là phần trình bày; phần pháp chứng là kho Git (xem Các quy trình: Sẵn sàng kiểm toán và nhánh dẫn xuất gcbok-audit-evidence-docs/docs/02-audit-website-als-pruefungsartefakt).
Các tệp lược đồ được lưu có phiên bản trong .gitcover/schemas/ của kho TOP và được làm cho có thể phân giải thông qua others.json.
Mẫu container DMS
Container .gc.zip cho GCDMS (phạm vi tùy thuộc vào trường hợp sử dụng):
document.gc.zip
├── document.gc.md # Metadaten (SHA-256 des Ur-Dokuments, docUid, v7guid, Taxonomie)
├── document.gc.sig # GPG-Signatur des Manifests
├── document.pdf # Originaldokument (Urdokument)
├── document.json # Maschinenlesbare Extrakte
├── document.xml # Maschinenlesbare Extrakte (z.B. X-Rechnung)
└── attachments/ # Anhänge
Thứ tự trong container: Manifest (document.gc.md) đứng ở vị trí đầu tiên và mang SHA-256 của tài liệu gốc; các mục theo sau một cách xác định (manifest, chữ ký, tài liệu gốc, phần trích xuất, tệp đính kèm). Nhờ đó container có thể đọc được mà không cần registry và đồng thời vẫn được ràng buộc với object_id của DMS (= docUid của sidecar).
Lựa chọn định dạng tùy theo trường hợp sử dụng
| Định dạng | Cách sử dụng |
|---|---|
.gc.json |
Có thể đọc bằng máy, chính sách OPA, xuất OSCAL |
.gc.md |
Siêu liên kết, con người đọc được, Git-Web-UI |
.gc.yaml |
Tệp cấu hình, con người có thể chỉnh sửa |
Mẫu sidecar GitCover
Sidecar chuẩn tắc (*.gc.md) cho một tài liệu gốc kỹ thuật số. Lược đồ: https://gitcover.org/schemas/v7g-sidecar-2.0.schema.json; siêu dữ liệu phiên bản tuân theo record-metadata-1.0.schema.json (ISO 15489).
DocID =
uuidv7(mã định danh cá thể) so vớiv7guid(mã định danh lớp/ngữ cảnh). Cả hai được ghi trong sidecar và được liên kết thông quacomposite_key({v7guid}:{uuidv7}). Nội dung tối thiểu:sha256của tài liệu gốc.
# GitCover Sidecar - {original_filename}
**SHA-256:** `{sha256}`
**Tenant:** {tenant}
**Kategorie:** {category}
**Sphäre:** {sphere}
**Tags:** {tags}
```json
{
"$schema": "https://gitcover.org/schemas/v7g-sidecar-2.0.schema.json",
"docUid": "{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 đưa mới vào DMS, công cụ sidecar 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 chuyên môn, ngày đó sẽ được sử dụng (xem Trục 5: Các quy trình).