Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
b8ce617
feat: add compliance posture
refoo0 Jul 1, 2026
11d4e2e
Merge remote-tracking branch 'origin/main' into feat/compliance-posture
refoo0 Jul 1, 2026
43646f6
update compliance posture implementation and add mocks
refoo0 Jul 1, 2026
cda0cae
add Grundschutz++ controls and extend framework control schema
refoo0 Jul 2, 2026
d6901e2
add SCF and OSCAL control mapping to compliance posture
refoo0 Jul 10, 2026
dcf924b
Merge branch 'main' (early part) into feat/compliance-posture
timbastin Jul 10, 2026
4b9dc01
add OSCAL download
refoo0 Jul 13, 2026
787c777
Merge branch 'feat/compliance-posture' of github.com:l3montree-dev/de…
refoo0 Jul 13, 2026
e300abc
fix mocks
refoo0 Jul 13, 2026
1eadf6e
Merge remote-tracking branch 'origin/main' into feat/compliance-posture
refoo0 Jul 13, 2026
4653781
fix lint
refoo0 Jul 13, 2026
40f9c89
moves compliance files to compliance package, using migration to seed…
timbastin Jul 15, 2026
3f02618
fixes bola issue, fixes sast findings
timbastin Jul 15, 2026
8ccab65
keeping some internals private in compliance package
timbastin Jul 15, 2026
944ec4e
reduces code duplication in compliance_posture_controller
timbastin Jul 15, 2026
12e025a
fixes typo
timbastin Jul 15, 2026
38b62ed
Merge branch 'main' into feat/compliance-posture
timbastin Jul 15, 2026
fbd0c45
nilable asset_id and project_id on compliance posture model
timbastin Jul 16, 2026
e3e7440
using single system component, same how trestle is doing it
timbastin Jul 16, 2026
612ba00
removes unused function
timbastin Jul 16, 2026
0beec7f
fixes migration
timbastin Jul 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"epss",
"ghinstallation",
"gorm",
"Grundschutz",
"Kyverno",
"libc",
"montree",
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Files: * except 'images/*' and except where noted otherwise
Files: * except 'images/*', except 'vulndb/compliance/SCF.json', except 'vulndb/compliance/Grundschutz++-catalog.json' and except where noted otherwise
Notice: The sponsors names and logos (images) are maybe subject to copyright restrictions. The 'l3montree' word mark and the 'l3montree' logo are registered trademarks. Any unpermitted usage is prohibited.
Copyright: Copyright (c) 2024 l3montree GmbH
License: AGPL-3.0
Expand Down
9 changes: 9 additions & 0 deletions cmd/devguard-cli/commands/hash_migration.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import (
"github.com/jackc/pgx/v5/pgxpool"
"github.com/l3montree-dev/devguard/accesscontrol"
"github.com/l3montree-dev/devguard/cmd/devguard-cli/hashmigrations"
"github.com/l3montree-dev/devguard/compliance"
"github.com/l3montree-dev/devguard/controllers"
"github.com/l3montree-dev/devguard/daemons"
"github.com/l3montree-dev/devguard/database"
Expand Down Expand Up @@ -92,6 +93,14 @@ func runMigrations() error {
}

slog.Info("hash migration check completed", "duration", time.Since(start))

db := database.NewGormDB(pool)
slog.Info("loading compliance controls into database...")
if err := compliance.LoadControlsIntoDB(db); err != nil {
slog.Error("failed to load compliance controls", "err", err)
migrationErr = err
return
}
}),
)

Expand Down
1 change: 1 addition & 0 deletions cmd/devguard/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ func main() {
fx.Invoke(func(FalsePositiveRuleRouter router.VEXRuleRouter) {}),
fx.Invoke(func(ExternalReferenceRouter router.ExternalReferenceRouter) {}),
fx.Invoke(func(CrowdsourcedVexingRouter router.CrowdsourcedVexingRouter) {}),
fx.Invoke(func(CompliancePostureRouter router.CompliancePostureRouter) {}),
fx.Invoke(func(lc fx.Lifecycle, encryptionService shared.DBEncryptionService) {
lc.Append(fx.Hook{
OnStart: func(ctx context.Context) error {
Expand Down
68,934 changes: 68,934 additions & 0 deletions compliance/Grundschutz++-catalog.json

Large diffs are not rendered by default.

11 changes: 11 additions & 0 deletions compliance/Grundschutz++_License.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Legal Notice for DevGuard Users

DevGuard includes control data derived from the "Stand der Technik Bibliothek" (Grundschutz++), created and maintained by the Bundesamt für Sicherheit in der Informationstechnik (BSI). This content is used here to power DevGuard's compliance posture features.

This content is **not** covered by DevGuard's own AGPL license. It remains licensed separately by the BSI under the Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA 4.0), and that license continues to apply in full to this content as distributed with DevGuard. Under the ShareAlike term, any distribution of this content (including modified versions) must remain under CC BY-SA 4.0 or a compatible license.

Attribution: Control content is based on the "Stand der Technik Bibliothek" by the Bundesamt für Sicherheit in der Informationstechnik (BSI).

- Source: https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek
- License: https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/blob/main/LICENSE
- License text: https://creativecommons.org/licenses/by-sa/4.0/legalcode
Loading
Loading