ED07 - Thời hạn Lưu trữ & Tính bất biến: Git Hook, Gói Bằng chứng
Vấn đề
GoBD và AO yêu cầu lưu trữ dài hạn - nhưng trong thực tế việc thực hiện thất bại:
- "10 năm? Đám mây lo việc đó." - nhiều doanh nhân tin rằng phần mềm đám mây xử lý lưu trữ tự động - nhưng khi hủy tài khoản, dữ liệu thường không còn truy cập được (xem ED01 điểm đau 6-7)
- Tài khoản đám mây bị hủy, dữ liệu mất - tài khoản lương bị tạm dừng, các tài khoản lương cũ chỉ có thể kích hoạt lại với chi phí phụ - vi phạm GoBD (§ 146 Abs. 5 AO)
- Phiên bản phần mềm cũ không thể kích hoạt lại - các bản sao lưu
yêu cầu phiên bản phần mềm cũ, không còn cài đặt được
- vi phạm GoBD (§ 147 Abs. 2 AO: "có thể đọc ngay lập tức")
- Không có tính bất biến - các khoản đặt bị thay đổi hồi tố mà không có khả năng truy vết - vi phạm GoBD (Rz. 146)
- Không có gói bằng chứng - trong kiểm toán hiện trường, người kiểm toán không thể được cung cấp một phương tiện dữ liệu (Z3) - vi phạm GoBD (§ 147 Abs. 6 AO)
- Thời hạn lưu trữ không được biết - 10 năm? 8 năm? 6 năm? Nhiều doanh nhân không biết thời hạn cho hồ sơ của họ
Tuyên bố cốt lõi
Lưu trữ tuân thủ GoBD với Git có nghĩa:
- Git bundle là tự chứa - không cần tài khoản đám mây, không
giấy phép phần mềm, không nhà cung cấp dịch vụ -
git clonelà đủ - Thời hạn lưu trữ được ghi nhận trong kho - mỗi
tạo tác mang thời hạn của nó trong sidecar (
obsolescence+ ngày thời hạn) - Tính bất biến qua tag và nhánh được bảo vệ - trạng thái đã phê duyệt là bất biến về mặt mật mã
- Gói bằng chứng cho kết kỳ -
git bundle+ web tĩnh (Z3+) cho người kiểm toán (xem ED04) - Kiểm tra thời hạn làm tạo tác Git -
checks/FRISTEN_CHECK.mdcảnh báo về thời hạn sắp tới
Tuân thủ theo thiết kế: Lưu trữ không phải là việc làm sau - nó phát sinh thông qua việc lựa chọn phương tiện. Git bundle là tự chứa và tồn tại lâu hơn mọi khóa đám mây, mọi thay đổi phiên bản phần mềm, mọi lần hủy nhà cung cấp dịch vụ.
Thời hạn lưu trữ theo AO § 147
Aufbewahrungsfristen"] AO --> J10["10 Jahre
§ 147 Abs. 1 Nr. 1"] AO --> J8["8 Jahre
§ 147 Abs. 1 Nr. 4"] AO --> J6["6 Jahre
§ 147 Abs. 1 Nr. 2/3/5"] J10 --> D10["Bücher, Aufzeichnungen
Inventare, Jahresabschlüsse
Eröffnungsbilanz
Arbeitsanweisungen"] J8 --> D8["Buchungsbelege
E-Rechnungen (XML)
Lohnbelege"] J6 --> D6["Handels- / Geschäftsbriefe
E-Mails (EML)
Sonstige Unterlagen"] style AO fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style J10 fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style J8 fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style J6 fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style D10 fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style D8 fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style D6 fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33
| Thời hạn | Loại hồ sơ | Cơ sở pháp lý | Ví dụ |
|---|---|---|---|
| 10 năm | Sách, hồ sơ, kiểm kê, báo cáo tài chính năm, bảng cân đối khai trương, hướng dẫn công việc | § 147 Abs. 1 Nr. 1 AO | Sổ cái (JSON), tài liệu quy trình, bảng tài khoản |
| 8 năm | Chứng từ đặt | § 147 Abs. 1 Nr. 4 AO | Hóa đơn điện tử (XML), bảng lương, thông báo SV |
| 6 năm | Thư thương mại / kinh doanh, hồ sơ khác | § 147 Abs. 1 Nr. 2/3/5 AO | E-mail (EML), thư từ, ghi chú |
Quan trọng - bắt đầu thời hạn: Thời hạn bắt đầu với kết thúc năm dương lịch, trong đó lần nhập cuối cùng được thực hiện, báo cáo tài chính năm được lập, chứng từ được nhận hoặc hồ sơ được thực hiện (§ 147 Abs. 4 AO). Một khoản đặt ngày 15.08.2026 bắt đầu thời hạn vào 31.12.2026 - 10 năm kết thúc vào 31.12.2036.
Tính bất biến qua Git
Commit"] B --> H["SHA-256-Hash
des Commits"] H --> T["Tag
(Freigabe-Marker)"] T --> P["Protected Branch
(kein Force-Push)"] P --> U["Unveränderbarkeit
GoBD Rz. 146"] K["Korrektur nötig"] K --> NC["Neuer Commit
+ Obsoleszenz-Markierung"] NC --> O["Original bleibt
nachvollziehbar"] style B fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style H fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style T fill:#10A987,stroke:#0A7F5C,color:#FBFAF7 style P fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style U fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style K fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style NC fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style O fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33
| Cơ chế | Tính năng Git | Tham chiếu GoBD |
|---|---|---|
| Hash commit | Hash SHA-256 mỗi commit - mỗi thay đổi tạo hash mới | Rz. 146 (tính bất biến) |
| Tag | Dấu bất biến cho trạng thái đã phê duyệt | Rz. 146 (phê duyệt) |
| Nhánh được bảo vệ | main được bảo vệ, không force push, không rebase |
Rz. 146 (không viết lại) |
| Lỗi thời | Sửa chữa làm commit mới với superseded_by |
Rz. 146 (khả năng truy vết) |
| Chữ ký GPG | Commit được ký - tính xác thực có thể xác minh | Rz. 146 (tác giả) |
Quan trọng - lịch sử tuyến tính: Chỉ có lịch sử tuyến tính không viết lại là tuân thủ GoBD.
git rebase,git commit --amendvàgit push --forcetrênmainlà bị cấm. Pre-commit hook kiểm tra rằng không có force push và sửa chữa được thực hiện làm commit mới với đánh dấu lỗi thời.
Gói bằng chứng cho lưu trữ
z. B. FY2026"] FY --> EP["Tenant Evidence Package
(Periodenabschluss)"] EP --> GB["git bundle
self-contained Archiv"] EP --> SW["Static-Web
(Z3+ Browser)"] EP --> MF["Manifest
+ SHA-256-Checksummen"] GB --> USB["USB-Stick
oder Off-Site-Backup"] SW --> USB MF --> USB USB --> PR["Prüfer
git clone oder index.html
offline, ohne IAM"] style FY fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style EP fill:#10A987,stroke:#0A7F5C,color:#FBFAF7 style GB fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style SW fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style MF fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style USB fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style PR fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33
Một Tenant Evidence Package (xem ED04 Z3+) cho một năm tài chính chứa:
| Thành phần | Nội dung | Tham chiếu GoBD |
|---|---|---|
| git bundle | Kho hoàn chỉnh (lịch sử, commit, tag) | § 147 Abs. 6 AO (phương tiện dữ liệu Z3) |
| Web tĩnh | Trang web có thể điều hướng bằng trình duyệt (HTML/PDF/JSON) | Z3+ (quyền truy cập người kiểm toán không cần IAM) |
| Manifest | Tổng kiểm tra SHA-256 mỗi tệp, chỉ mục V7GUID | Rz. 146 (tính toàn vẹn) |
| Tài liệu quy trình | Kết xuất làm HTML | Rz. 64-91 (tài liệu quy trình) |
| Tài liệu DMS | Tất cả chứng từ (PDF, XML, EML) | § 147 Abs. 1 (lưu trữ) |
| Hợp đồng | Tài liệu liên kỳ | § 147 Abs. 1 Nr. 2/3 (thư thương mại) |
Lưu trữ an toàn nhất: Một USB stick với
git bundle+ web tĩnh + manifest là tự chứa, ngoại tuyến, không IAM, không tài khoản đám mây, không giấy phép phần mềm. Nó tồn tại lâu hơn mọi lần hủy nhà cung cấp dịch vụ, mọi thay đổi phiên bản phần mềm, mọi khóa đám mây. Đó là hình thức lưu trữ tuân thủ GoBD an toàn nhất
- vì không có phụ thuộc.
Tất nhiên, phải xem xét an ninh vật lý của USB stick (két sắt, bảo vệ cháy, sao lưu ngoại tuyến).
Quản lý thời hạn trong kho
checks/FRISTEN_CHECK.md
# Fristen-Check
## Vorlauf (bis 010926) - PRIO 1
- [ ] 200826: ELSTER-Organisationszertifikat anfordern
- [ ] 250826: Gefahrtarifstelle festlegen
- [ ] 300826: D&O-Versicherung GF-Haftung
## Aufbewahrungsfristen (laufend)
| Frist | Unterlagen-Typ | Endet | Status |
|---|---|---|---|
| 10 Jahre | Grundbuch FY2026 | 31.12.2036 | aktiv |
| 8 Jahre | E-Rechnungen FY2026 | 31.12.2034 | aktiv |
| 6 Jahre | E-Mails FY2026 | 31.12.2032 | aktiv |
Cảnh báo tự động về thời hạn sắp tới
(Git-Artefakt)"] FC --> P14["über 14 Tage
grün"] FC --> P7["7–14 Tage
gelb"] FC --> P0["unter 7 Tage
orange/rot"] P0 --> W["Warnung
an Unternehmer"] style FC fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style P14 fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style P7 fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style P0 fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style W fill:#FDBA74,stroke:#C2410C,color:#0F1B33
| Loại thời hạn | Cảnh báo | Hành động |
|---|---|---|
| Thời hạn lưu trữ kết thúc | 30 ngày trước | Ghi nhận tiêu hủy sau khi hết hạn |
| Thời hạn cơ quan (ELSTER, SV) | 14 ngày trước | Chuẩn bị truyền |
| Thời hiệu (§ 169 AO) | 90 ngày trước | Không tiêu hủy hồ sơ |
Đòn bẩy rủi ro
| Hôm nay (rẻ) | Ngày mai (chứng minh được kiểm toán) | Rủi ro được giảm |
|---|---|---|
git bundle làm lưu trữ tự chứa |
Lưu trữ 10 năm không cần tài khoản đám mây | Vi phạm GoBD do hủy tài khoản |
| Tag + nhánh được bảo vệ | Tính bất biến sau phê duyệt | Vi phạm GoBD do thay đổi hồi tố |
| Gói bằng chứng (Z3+) | Quyền truy cập người kiểm toán không IAM, ngoại tuyến | Vi phạm GoBD do dữ liệu không truy cập được |
| Kiểm tra thời hạn làm tạo tác Git | Tránh bỏ lỡ thời hạn | Phụ trội chậm trễ § 152 AO |
| Đánh dấu lỗi thời | Sửa chữa có thể truy vết | Thay đổi ẩn |
| Commit ký GPG | Tính xác thực có thể xác minh | Tranh chấp tác giả |
| Web tĩnh (Z3+) | Khả năng điều hướng trình duyệt cho người kiểm toán | Vi phạm GoBD do dữ liệu không thân thiện người kiểm toán |
Yêu cầu Harness (xem trước)
Có thể suy ra từ ED07:
| ID | Yêu cầu | Mức ưu tiên |
|---|---|---|
| FA-4.1 | Tệp kiểm tra thời hạn (checks/FRISTEN_CHECK.md) |
MUST |
| FA-4.2 | Mục thời hạn với ngày, loại, tenant, tham chiếu chứng từ | MUST |
| FA-4.3 | Cảnh báo tự động cho thời hạn < 14 ngày | SHOULD |
| FA-6.5 | Lưu trữ 10 năm qua gói bằng chứng (Git bundle) | MUST |
| FA-6.6 | Tính bất biến sau phê duyệt (tag, nhánh được bảo vệ) | MUST |
| FA-6.7 | Trình tạo web tĩnh cho kết kỳ (Z3+) | SHOULD |
| TA-2.4 | Pre-commit: kiểm tra trạng thái lỗi thời | SHOULD |
Danh sách yêu cầu đầy đủ trong Harness-Anforderungen.md.
Nguồn
- GoBD (thư BMF, Rz. 146 - tính bất biến, Rz. 152 - thời hạn lưu trữ)
- AO (§ 146 Abs. 5 - tính sẵn sàng, § 147 - thời hạn lưu trữ 10/8/6 năm, § 147 Abs. 4 - bắt đầu thời hạn, § 147 Abs. 6 - truy cập dữ liệu Z3)
GitCover.Ledger/docs/02-Tenant-Evidence-Package.md- khái niệm Tenant Evidence PackageAFJD/agents/(ẩn danh) - khái niệm SSoT với kiểm tra thời hạn, gói bằng chứng
Cấu trúc nguồn và liên kết tham chiếu CDN
| Vai trò | Địa điểm | Mục đích |
|---|---|---|
| Chính / SSoT | git.gitcover.org/GCC | Lưu trữ chuẩn (ký GPG, quản lý phiên bản) |
| OSS Mirror công khai / CDN | codeberg.org/gitcover-commons | Bản sao chỉ đọc; khám phá FLOSS |
| Trung tâm cộng đồng | github.com/gitcover-commons | Vấn đề & thảo luận; tham chiếu mã nguồn trên Codeberg |
Lưu ý: Phân công nguồn, mirror và trung tâm cộng đồng này phản ánh trạng thái hiện tại và có thể thay đổi. Vui lòng kiểm tra nguồn chuẩn tương ứng trên gitcover.org cho trạng thái hiện tại.