DS05 — Container chữ ký GCPN: Tài liệu nguồn, FES-Doc, quy trình
Trình kích hoạt S2, kết thúc Phần I
E1 giờ đây có ba Artefakt riêng biệt: tài liệu nguồn (MD), Doc chữ ký (JSON), các Events (JSON). Người kiểm tra hỏi: Tất cả liên kết với nhau như thế nào? Câu trả lời chính là container chữ ký GCPN — một biến thể của container GitCover-PrimaNota (GCPN), tập hợp tất cả Artefakt của một quy trình chữ ký dưới một Container-ID.
GCPN — nguyên tắc container
Trong lĩnh vực chứng từ, GCPN (GitCover PrimaNota) kết nối tất cả tài liệu của một giao dịch kinh doanh: chứng từ gốc, Sidecar, logic hạch toán. Container chữ ký chuyển nguyên tắc này sang quy trình chữ ký:
GCPN-Container (sign)
├── Quell-Dokument (MD) + Sidecar
├── FES-Signatur-Doc (JSON) + Sidecar ← referenziert
├── FES-Output (PDF/HTML, physisch) ← nur bei FES-Verfahren
├── Events (offered/accepted/signed) + Sidecar
├── Facsimile-Grafik-Verweis (SHA-256 + guid-Stempel)
└── Verifikationsmanifest (SHA-256 aller Glieder)
Tệp container
Bản thân container là một tài liệu Markdown với một Artefakt JSON được nhúng bên trong (giống như mọi GitCover-Doc):
{
"$schema": "https://gitcover.org/schemas/gcpn-signature-1.0.schema.json",
"uuidV7": "<deterministische uuidV7>",
"type": "gcpn-signature",
"kind": "signature-process",
"container_id": "GCPN-SIG-260913-001",
"scope": {
"tenant": "GCC",
"entity": "ORG-1",
"matter": "[GVB](../../glossar.html#gvb "Gesellschafterversammlungsbeschluss — Glossar") 260825 — GF-Vertrag: Selbständigkeit, Ehrenamt",
"sphere": "wirtschaftlich"
},
"artifacts": [
{
"role": "source",
"kind": "markdown",
"location": "..\\260825-shareholder-meeting-resolution.md",
"sha256": "<SHA-256>",
"sidecar": "..\\260825_*.md.v7g.md"
},
{
"role": "signature-doc",
"kind": "json",
"location": "260913_signature-doc.json",
"sha256": "<SHA-256>",
"sidecar": "260913_signature-doc.json.v7g.md"
},
{
"role": "event",
"kind": "json",
"events": ["offered", "accepted", "signed"],
"location": "260913_event-*.json",
"sha256": "<SHA-256 je Event>",
"sidecar": "260913_event-*.json.v7g.md"
},
{
"role": "facsimile-ref",
"kind": "ref",
"file": "E1.Signature.transparent.FES.svg",
"sha256": "8fcffe0b313f8a1e5b44c1c33cd8073e699b338b6450aa1ba9f33f5587501006",
"guid_stamp": "01a09b48-4580-76f9-b789-024691b989c5",
"note": "Verweis, nicht Einbettung — Grafik liegt im [PII](../../glossar.html#pii "Personally Identifiable Information — Glossar")-Verzeichnis"
},
{
"role": "fes-doc",
"kind": "pdf",
"location": "260913_FES_Envelope-Report.pdf",
"sha256": "<SHA-256>",
"note": "Nur bei FES-Verfahren — physisch im Container-Paket (Teil II)"
}
],
"prev_container": null,
"next_container": null,
"verification": {
"method": "sha256 + jq routine (DS04)",
"verified_at": "2026-09-13T16:00:00Z",
"verified_by": "E1"
}
}
"Ban đầu không có tiền nhiệm/kế nhiệm" — giai đoạn thiết kế
Quan trọng đối với chất lượng Saga: Container có các trường
prev_container/next_container, nhưng chúng đang là null. Điều này
là có chủ ý — hai giai đoạn phát triển:
| Giai đoạn | prev/next | Ý nghĩa |
|---|---|---|
| Giai đoạn 1 (hiện nay) | null |
Container tập hợp trọn vẹn một quy trình; không cần nối chuỗi giữa các container |
| Giai đoạn 2 (dự kiến) | SHA-256 của container tiền nhiệm | Chuỗi container cho các thủ tục dài hạn (ví dụ: vòng đời hợp đồng với các lần bổ sung) |
Các trường này đã tồn tại sẵn để việc nối chuỗi sau này có thể thực hiện
mà không làm vỡ schema. Một container vẫn giữ nguyên tính bất biến —
việc nối chuỗi tạo ra một container mới với prev_container = sha256(alt).
Container trong ba vai trò
| Artefakt | Vai trò trong container | Giá trị chứng cứ |
|---|---|---|
| Tài liệu nguồn | Nội dung cần ký | Tính toàn vẹn của bản văn (SHA-256) |
| Doc chữ ký FES | Tuyên bố ý chí (hình thức văn bản hoặc FES) | Gán nguồn gốc (§ 371a ZPO) |
| Accept/Deny/Sign-Events | Quy trình tất định | Tính công bằng của thủ tục, trình tự thời gian |
| Tham chiếu Facsimile | Bản vẽ dưới dạng tham chiếu đồ họa | Việc làm rõ nhận diện (§ 126b (3)) |
| FES-Output (PDF) | Bản FES vật lý | Chỉ trong thủ tục FES — được chứa vật lý trong gói container |
HTML-Output và gói container
Với HTML-Output (website GCBoK, Preview), container được phân phối vật lý dưới dạng gói:
<container-id>.gcpn.zip
├── container.md (dieser Container)
├── source.md + .v7g.md
├── signature-doc.json + .v7g.md
├── event-*.json + .v7g.md
├── facsimile.svg (bei FES: physisch, sonst Verweis)
└── fes-envelope-report.pdf (nur bei FES)
Gói này có khả năng tự kiểm chứng: Người kiểm tra giải nén và thực thi quy trình trong DS04 — không cần truy cập repo, không cần Git.
Tóm tắt
- Container chữ ký GCPN tập hợp tất cả Artefakt của một quy trình chữ ký dưới một Container-ID kèm manifest kiểm chứng.
prev_container/next_containerđã được chuẩn bị (cố định trong schema), nhưng ban đầu lànull— việc nối chuỗi thuộc giai đoạn 2.- Doc FES được tham chiếu; bản FES vật lý (PDF) nằm trong gói container (Phần II).
- Phần I kết thúc tại đây. Phần II sẽ kết nối FES: nền tảng eIDAS, đồ họa Facsimile trong lớp PDF, Envelope-Report, gói container.
Đã tạo: 260913 | Phần I, bài viết DS05 | Loạt bài: digital-signage