diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml deleted file mode 100644 index bcabb3c0..00000000 --- a/.github/workflows/staging.yml +++ /dev/null @@ -1,109 +0,0 @@ -name: Build Website - Staging -on: - workflow_dispatch: - -jobs: - build: - name: Build Website - Staging - runs-on: ubuntu-22.04 - steps: - - name: Setup Hugo - uses: peaceiris/actions-hugo@v3 - with: - hugo-version: "0.126.1" - - - name: Check out code into the Go module directory - uses: actions/checkout@v3 - - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version-file: docGen/go.mod - cache-dependency-path: docGen/go.sum - - - name: Create build folder - run: mkdir avd-repo - - - name: Checkout public vuln-list-repo - uses: actions/checkout@v3 - with: - repository: aquasecurity/vuln-list - token: ${{ secrets.ORG_REPO_TOKEN }} - path: avd-repo/vuln-list - - - name: Checkout public vuln-list-nvd-repo - uses: actions/checkout@v3 - with: - repository: aquasecurity/vuln-list-nvd - token: ${{ secrets.ORG_REPO_TOKEN }} - path: avd-repo/vuln-list-nvd - - - - name: Checkout public vuln-list-redhat-repo - uses: actions/checkout@v3 - with: - repository: aquasecurity/vuln-list-redhat - token: ${{ secrets.ORG_REPO_TOKEN }} - sparse-checkout: | - api - path: avd-repo/vuln-list-redhat - - - name: Checkout public cloud-security-remediation-guides-repo - uses: actions/checkout@v3 - with: - repository: aquasecurity/cloud-security-remediation-guides - token: ${{ secrets.ORG_REPO_TOKEN }} - path: avd-repo/remediations-repo - - - name: Checkout public cloudsploit-repo - uses: actions/checkout@v3 - with: - repository: aquasecurity/cloudsploit - token: ${{ secrets.ORG_REPO_TOKEN }} - path: avd-repo/cloudsploit-repo - - - name: Checkout public trivy-policies-repo - uses: actions/checkout@v3 - with: - repository: aquasecurity/trivy-policies - token: ${{ secrets.ORG_REPO_TOKEN }} - path: avd-repo/trivy-policies-repo - - - name: Checkout public chain-bench-repo - uses: actions/checkout@v3 - with: - repository: aquasecurity/chain-bench - token: ${{ secrets.ORG_REPO_TOKEN }} - path: avd-repo/chain-bench-repo - - - name: Build generator - run: make md-clean md-build - - - name: Sync avd-repo with latest changes from generator - run: make sync-all - - - name: Build and Generate Markdown pages - run: make md-generate - - ## We have already created *.md files, so we can remove the repositories to save free space. - - name: Remove repositories - run: make remove-all-repos - - - name: Generate Hugo website - run: make hugo-generate - - - name: Copy assets - run: make copy-assets - - - name: Install AWS CLI - run: | - python3 -m venv .venv - source .venv/bin/activate - pip3 install awscli - - - name: Sync changes to the bucket - run: aws s3 sync --no-progress --only-show-errors --size-only avd-repo/docs ${{ secrets.STAGING_AVD_BUCKET }} - env: - AWS_ACCESS_KEY_ID: ${{ secrets.STAGING_AVD_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.STAGING_AVD_SECRET_ACCESS_KEY }} - AWS_REGION: us-east-1 diff --git a/GETTING_STARTED.md b/GETTING_STARTED.md index 4dfd0087..c3566e12 100644 --- a/GETTING_STARTED.md +++ b/GETTING_STARTED.md @@ -156,16 +156,15 @@ This cleans, build docGen, makes sure all the files are available in `avd-repo`, ### Running Locally -the [README.md](README.md) has a section on using `nginx` to host locally, I didn't find that much fun to use - good luck if you choose to. - -I find the easiest and most reliable (assuming you have `python3` installed) way is +The easiest and most reliable way to serve the site locally (assuming you have python3 installed) is to use the Makefile target: ```bash -cd avd-repo/docs -python3 -m http.server +make serve ``` -This will make the whole site available locally at `http://localhost:8000` +This will start a local HTTP server and make the entire site available at http://localhost:9011. + +Simply open that URL in your browser to browse the site locally. Press Ctrl+C in the terminal to stop the server. You are unlikely to need to be using search locally, but if you are, the next section should work out for you!! diff --git a/Makefile b/Makefile index 9f22ca91..4877cbb4 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,11 @@ +PY_PORT ?= 9011 + md-update-deps: cd docGen && go get github.com/aquasecurity/defsec \ && go mod tidy md-build: - cd docGen && go build -o ../generator . + cd docGen && CGO_ENABLED=0 go build -o ../generator . md-test: cd docGen && go test -v ./... @@ -49,23 +51,14 @@ remove-all-repos: rm -rf avd-repo/cloudsploit-repo sync-all: - rsync -av ./ avd-repo/ --exclude=.idea --exclude=go.mod --exclude=go.sum --exclude=nginx.conf --exclude=main.go --exclude=main_test.go --exclude=README.md --exclude=avd-repo --exclude=.git --exclude=.gitignore --exclude=.github --exclude=content --exclude=docs --exclude=Makefile --exclude=goldens + rsync -av ./ avd-repo/ --exclude=.idea --exclude=go.mod --exclude=go.sum --exclude=main.go --exclude=main_test.go --exclude=README.md --exclude=avd-repo --exclude=.git --exclude=.gitignore --exclude=.github --exclude=content --exclude=docs --exclude=Makefile --exclude=goldens md-generate: cd avd-repo && ./generator -nginx-start: - -cd avd-repo/docs && nginx -p . -c ../../nginx.conf - -nginx-stop: - @if pgrep nginx > /dev/null; then \ - cd avd-repo/docs && nginx -s stop -p . -c ../../nginx.conf; \ - else \ - echo "Nginx is not running."; \ - fi - -nginx-restart: - make nginx-stop nginx-start +serve: + @echo "Serving static site at http://localhost:${PY_PORT}" + @cd avd-repo/docs && python3 -m http.server ${PY_PORT} hugo-devel: hugo server -D --debug @@ -77,18 +70,13 @@ hugo-generate: hugo-clean cd avd-repo && ./ci/nvd_pages_build.sh echo "avd.aquasec.com" > avd-repo/docs/CNAME -simple-host: - cd avd-repo/docs && python3 -m http.server - copy-assets: cp -R avd-repo/remediations-repo/resources avd-repo/docs/resources touch avd-repo/docs/.nojekyll -build-all-no-clone: md-clean md-build sync-all md-generate hugo-generate copy-assets nginx-restart - echo "Build Done, navigate to http://localhost:9011/ to browse" +build-all-no-clone: md-clean md-build sync-all md-generate hugo-generate copy-assets serve -build-all: md-clean md-build md-clone-all sync-all md-generate hugo-generate copy-assets nginx-restart - echo "Build Done, navigate to http://localhost:9011/ to browse" +build-all: md-clean md-build md-clone-all sync-all md-generate hugo-generate copy-assets serve compile-theme-sass: cd themes/aquablank/static/sass && sass avdblank.scss:../css/avdblank.css && sass avdblank.scss:../css/avdblank.min.css --style compressed \ No newline at end of file diff --git a/README.md b/README.md index e9126746..69d87c61 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Note: Set `baseURL="/"` [here](https://github.com/aquasecurity/avd-generator/blo `make hugo-devel` and then navigate to `http://localhost:1313` to view the site. #### tl;dr for the full build with real content -`make md-clean md-build sync-all md-generate hugo-generate nginx-restart` +`make md-clean md-build sync-all md-generate hugo-generate serve` then navigate to `http://localhost:9011` to view the pages. If changes are made to the existing AVD page structure (removal of existing fields), the following must be done: diff --git a/config.toml b/config.toml index 48129fb9..b3a43c2b 100644 --- a/config.toml +++ b/config.toml @@ -117,4 +117,8 @@ pygmentsCodefences = true [markup.goldmark] [markup.goldmark.renderHooks] [markup.goldmark.renderHooks.link] - enableDefault = false \ No newline at end of file + enableDefault = false + + +[minify] + minifyOutput = true diff --git a/docGen/crossover.go b/docGen/crossover.go index f86f803d..f7ac8131 100644 --- a/docGen/crossover.go +++ b/docGen/crossover.go @@ -1,62 +1,62 @@ package main var crossOver = map[string]string{ - "AVD-AWS-0007": "en/aws/athena/workgroup-enforce-configuration.md", - "AVD-AWS-0006": "en/aws/athena/workgroup-encrypted.md", - "AVD-AWS-0012": "en/aws/cloudfront/cloudfront-https-only.md", - "AVD-AWS-0010": "en/aws/cloudfront/cloudfront-logging-enabled.md", - "AVD-AWS-0013": "en/aws/cloudfront/insecure-cloudfront-protocols.md", - "AVD-AWS-0011": "en/aws/cloudfront/cloudfront-waf-enabled.md", - "AVD-AWS-0015": "en/aws/cloudtrail/cloudtrail-encryption.md", - "AVD-AWS-0016": "en/aws/cloudtrail/cloudtrail-file-validation.md", - "AVD-AWS-0014": "en/aws/cloudtrail/cloudtrail-enabled.md", - "AVD-AWS-0025": "en/aws/dynamodb/dynamodb-kms-encryption.md", - "AVD-AWS-0028": "en/aws/ec2/insecure-ec2-metadata-options.md", - "AVD-AWS-0031": "en/aws/ecr/ecr-repository-tag-immutability.md", - "AVD-AWS-0037": "en/aws/efs/efs-encryption-enabled.md", - "AVD-AWS-0040": "en/aws/eks/eks-private-endpoint.md", - "AVD-AWS-0038": "en/aws/eks/eks-logging-enabled.md", - "AVD-AWS-0041": "en/aws/eks/eks-security-groups.md", - "AVD-AWS-0047": "en/aws/elb/insecure-ciphers.md", - "AVD-AWS-0054": "en/aws/elb/elb-https-only.md", - "AVD-AWS-0123": "en/aws/iam/users-mfa-enabled.md", - "AVD-AWS-0062": "en/aws/iam/maximum-password-age.md", - "AVD-AWS-0058": "en/aws/iam/password-requires-lowercase.md", - "AVD-AWS-0061": "en/aws/iam/password-requires-uppercase.md", - "AVD-AWS-0063": "en/aws/iam/minimum-password-length.md", - "AVD-AWS-0060": "en/aws/iam/password-requires-symbols.md", - "AVD-AWS-0056": "en/aws/iam/password-reuse-prevention.md", - "AVD-AWS-0059": "en/aws/iam/password-requires-numbers.md", - "AVD-AWS-0064": "en/aws/kinesis/kinesis-streams-encrypted.md", - "AVD-AWS-0065": "en/aws/kms/kms-key-rotation.md", - "AVD-AWS-0080": "en/aws/rds/rds-encryption-enabled.md", - "AVD-AWS-0082": "en/aws/rds/rds-publicly-accessible.md", - "AVD-AWS-0084": "en/aws/redshift/redshift-cluster-cmk-encryption.md", - "AVD-AWS-0089": "en/aws/s3/s3-bucket-logging.md", - "AVD-AWS-0086": "en/aws/s3/s3-bucket-all-users-acl.md", - "AVD-AWS-0090": "en/aws/s3/s3-bucket-versioning.md", - "AVD-AWS-0095": "en/aws/sns/sns-topic-encrypted.md", - "AVD-AWS-0096": "en/aws/sqs/sqs-encrypted.md", - "AVD-AZU-0001": "en/azure/appservice/client-certificates-enabled.md", - "AVD-AZU-0004": "en/azure/appservice/https-only-enabled.md", - "AVD-AZU-0002": "en/azure/appservice/identity-enabled.md", - "AVD-AZU-0005": "en/azure/appservice/http-2.0-enabled.md", - "AVD-AZU-0003": "en/azure/appservice/authentication-enabled.md", - "AVD-AZU-0006": "en/azure/appservice/tls-version-check.md", - "AVD-AZU-0014": "en/azure/keyvault/key-expiration-enabled.md", - "AVD-AZU-0031": "en/azure/monitor/log-profile-retention-policy.md", - "AVD-AZU-0045": "en/azure/securitycenter/standard-pricing-enabled.md", - "AVD-AZU-0044": "en/azure/securitycenter/high-severity-alerts-enabled.md", - "AVD-AZU-0046": "en/azure/securitycenter/security-contacts-enabled.md", - "AVD-GCP-0030": "en/google/compute/instance-level-ssh-only.md", - "AVD-GCP-0032": "en/google/compute/connect-serial-ports-disabled.md", - "AVD-GCP-0042": "en/google/compute/os-login-enabled.md", - "AVD-GCP-0013": "en/google/dns/dns-security-enabled.md", - "AVD-GCP-0012": "en/google/dns/dns-security-signing-algorithm.md", - "AVD-GCP-0008": "en/google/iam/service-account-separation.md", - "AVD-GCP-0065": "en/google/iam/service-account-key-rotation.md", - "AVD-GCP-0017": "en/google/sql/db-publicly-accessible.md", - "AVD-GCP-0024": "en/google/sql/db-automated-backups.md", + "AWS-0007": "en/aws/athena/workgroup-enforce-configuration.md", + "AWS-0006": "en/aws/athena/workgroup-encrypted.md", + "AWS-0012": "en/aws/cloudfront/cloudfront-https-only.md", + "AWS-0010": "en/aws/cloudfront/cloudfront-logging-enabled.md", + "AWS-0013": "en/aws/cloudfront/insecure-cloudfront-protocols.md", + "AWS-0011": "en/aws/cloudfront/cloudfront-waf-enabled.md", + "AWS-0015": "en/aws/cloudtrail/cloudtrail-encryption.md", + "AWS-0016": "en/aws/cloudtrail/cloudtrail-file-validation.md", + "AWS-0014": "en/aws/cloudtrail/cloudtrail-enabled.md", + "AWS-0025": "en/aws/dynamodb/dynamodb-kms-encryption.md", + "AWS-0028": "en/aws/ec2/insecure-ec2-metadata-options.md", + "AWS-0031": "en/aws/ecr/ecr-repository-tag-immutability.md", + "AWS-0037": "en/aws/efs/efs-encryption-enabled.md", + "AWS-0040": "en/aws/eks/eks-private-endpoint.md", + "AWS-0038": "en/aws/eks/eks-logging-enabled.md", + "AWS-0041": "en/aws/eks/eks-security-groups.md", + "AWS-0047": "en/aws/elb/insecure-ciphers.md", + "AWS-0054": "en/aws/elb/elb-https-only.md", + "AWS-0123": "en/aws/iam/users-mfa-enabled.md", + "AWS-0062": "en/aws/iam/maximum-password-age.md", + "AWS-0058": "en/aws/iam/password-requires-lowercase.md", + "AWS-0061": "en/aws/iam/password-requires-uppercase.md", + "AWS-0063": "en/aws/iam/minimum-password-length.md", + "AWS-0060": "en/aws/iam/password-requires-symbols.md", + "AWS-0056": "en/aws/iam/password-reuse-prevention.md", + "AWS-0059": "en/aws/iam/password-requires-numbers.md", + "AWS-0064": "en/aws/kinesis/kinesis-streams-encrypted.md", + "AWS-0065": "en/aws/kms/kms-key-rotation.md", + "AWS-0080": "en/aws/rds/rds-encryption-enabled.md", + "AWS-0082": "en/aws/rds/rds-publicly-accessible.md", + "AWS-0084": "en/aws/redshift/redshift-cluster-cmk-encryption.md", + "AWS-0089": "en/aws/s3/s3-bucket-logging.md", + "AWS-0086": "en/aws/s3/s3-bucket-all-users-acl.md", + "AWS-0090": "en/aws/s3/s3-bucket-versioning.md", + "AWS-0095": "en/aws/sns/sns-topic-encrypted.md", + "AWS-0096": "en/aws/sqs/sqs-encrypted.md", + "AZU-0001": "en/azure/appservice/client-certificates-enabled.md", + "AZU-0004": "en/azure/appservice/https-only-enabled.md", + "AZU-0002": "en/azure/appservice/identity-enabled.md", + "AZU-0005": "en/azure/appservice/http-2.0-enabled.md", + "AZU-0003": "en/azure/appservice/authentication-enabled.md", + "AZU-0006": "en/azure/appservice/tls-version-check.md", + "AZU-0014": "en/azure/keyvault/key-expiration-enabled.md", + "AZU-0031": "en/azure/monitor/log-profile-retention-policy.md", + "AZU-0045": "en/azure/securitycenter/standard-pricing-enabled.md", + "AZU-0044": "en/azure/securitycenter/high-severity-alerts-enabled.md", + "AZU-0046": "en/azure/securitycenter/security-contacts-enabled.md", + "GCP-0030": "en/google/compute/instance-level-ssh-only.md", + "GCP-0032": "en/google/compute/connect-serial-ports-disabled.md", + "GCP-0042": "en/google/compute/os-login-enabled.md", + "GCP-0013": "en/google/dns/dns-security-enabled.md", + "GCP-0012": "en/google/dns/dns-security-signing-algorithm.md", + "GCP-0008": "en/google/iam/service-account-separation.md", + "GCP-0065": "en/google/iam/service-account-key-rotation.md", + "GCP-0017": "en/google/sql/db-publicly-accessible.md", + "GCP-0024": "en/google/sql/db-automated-backups.md", } var cloudsploitIgnores = []string{ @@ -127,64 +127,61 @@ var cloudsploitIgnores = []string{ } var defsecReplacements = map[string][]string{ - - "AVD-AWS-0004": {"/cspm/aws/apigateway/api-gateway-private-endpoints", "/cspm/aws/api-gateway/api-gateway-private-endpoints"}, - "AVD-AWS-0003": {"/cspm/aws/apigateway/api-gateway-tracing-enabled", "/cspm/aws/api-gateway/api-gateway-tracing-enabled"}, - "AVD-AWS-0163": {"/cspm/aws/cloudtrail/cloudtrail-bucket-access-logging"}, - "AVD-AWS-0161": {"/cspm/aws/cloudtrail/cloudtrail-bucket-private"}, - "AVD-AWS-0162": {"/cspm/aws/cloudtrail/cloudtrail-to-cloudwatch"}, - "AVD-AWS-0018": {"/cspm/aws/codebuild/project-artifacts-encrypted", "/cspm/aws/code-build/project-artifacts-encrypted"}, - "AVD-AWS-0019": {"/cspm/aws/configservice/config-service-enabled", "/cspm/aws/config/config-service-enabled"}, - "AVD-AWS-0131": {"/cspm/aws/ec2/ebs-encryption-enabled"}, - "AVD-AWS-0009": {"/cspm/aws/ec2/public-ip-address-ec2-instances"}, - "AVD-AWS-0033": {"/cspm/aws/ecr/ecr-repository-encrypted"}, - "AVD-AWS-0045": {"/cspm/aws/elasticache/elasticache-redis-cluster-encryption-at-rest"}, - "AVD-AWS-0054": {"/cspm/aws/elbv2/elbv2-https-only", "/cspm/aws/elb/elbv2-https-only"}, - "AVD-AWS-0047": {"/cspm/aws/elbv2/elb-ssl-termination", "/cspm/aws/elb/elb-ssl-termination"}, - "AVD-AWS-0137": {"/cspm/aws/emr/emr-encryption-at-rest"}, - "AVD-AWS-0138": {"/cspm/aws/emr/emr-encryption-in-transit"}, - "AVD-AWS-0048": {"/cspm/aws/es/elasticsearch-encrypted-domain"}, - "AVD-AWS-0046": {"/cspm/aws/es/elasticsearch-https-only"}, - "AVD-AWS-0042": {"/cspm/aws/es/elasticsearch-logging-enabled"}, - "AVD-AWS-0043": {"/cspm/aws/es/elasticsearch-node-to-node-encryption"}, - "AVD-AWS-0126": {"/cspm/aws/es/elasticsearch-tls-version"}, - "AVD-AWS-0144": {"/cspm/aws/iam/access-keys-last-used"}, - "AVD-AWS-0146": {"/cspm/aws/iam/access-keys-rotated"}, - "AVD-AWS-0143": {"/cspm/aws/iam/no-user-iam-policies"}, - "AVD-AWS-0141": {"/cspm/aws/iam/root-access-keys"}, - "AVD-AWS-0140": {"/cspm/aws/iam/root-account-in-use"}, - "AVD-AWS-0142": {"/cspm/aws/iam/root-mfa-enabled"}, - "AVD-AWS-0064": {"/cspm/aws/kinesis/kinesis-data-streams-encrypted"}, - "AVD-AWS-0071": {"/cspm/aws/mq/mq-log-exports-enabled"}, - "AVD-AWS-0073": {"/cspm/aws/msk/msk-cluster-encryption-in-transit"}, - "AVD-AWS-0076": {"/cspm/aws/neptune/neptune-database-instance-encrypted"}, - "AVD-AWS-0077": {"/cspm/aws/rds/rds-automated-backups"}, - "AVD-AWS-0127": {"/cspm/aws/redshift/redshift-cluster-in-vpc"}, - "AVD-AWS-0088": {"/cspm/aws/s3/s3-bucket-encryption"}, - "AVD-AWS-0136": {"/cspm/aws/sns/sns-topic-cmk-encryption"}, - "AVD-AWS-0109": {"/cspm/aws/workspaces/workspaces-volume-encryption"}, + "AWS-0004": {"/cspm/aws/apigateway/api-gateway-private-endpoints", "/cspm/aws/api-gateway/api-gateway-private-endpoints"}, + "AWS-0003": {"/cspm/aws/apigateway/api-gateway-tracing-enabled", "/cspm/aws/api-gateway/api-gateway-tracing-enabled"}, + "AWS-0163": {"/cspm/aws/cloudtrail/cloudtrail-bucket-access-logging"}, + "AWS-0161": {"/cspm/aws/cloudtrail/cloudtrail-bucket-private"}, + "AWS-0162": {"/cspm/aws/cloudtrail/cloudtrail-to-cloudwatch"}, + "AWS-0018": {"/cspm/aws/codebuild/project-artifacts-encrypted", "/cspm/aws/code-build/project-artifacts-encrypted"}, + "AWS-0019": {"/cspm/aws/configservice/config-service-enabled", "/cspm/aws/config/config-service-enabled"}, + "AWS-0131": {"/cspm/aws/ec2/ebs-encryption-enabled"}, + "AWS-0009": {"/cspm/aws/ec2/public-ip-address-ec2-instances"}, + "AWS-0033": {"/cspm/aws/ecr/ecr-repository-encrypted"}, + "AWS-0045": {"/cspm/aws/elasticache/elasticache-redis-cluster-encryption-at-rest"}, + "AWS-0054": {"/cspm/aws/elbv2/elbv2-https-only", "/cspm/aws/elb/elbv2-https-only"}, + "AWS-0047": {"/cspm/aws/elbv2/elb-ssl-termination", "/cspm/aws/elb/elb-ssl-termination"}, + "AWS-0137": {"/cspm/aws/emr/emr-encryption-at-rest"}, + "AWS-0138": {"/cspm/aws/emr/emr-encryption-in-transit"}, + "AWS-0048": {"/cspm/aws/es/elasticsearch-encrypted-domain"}, + "AWS-0046": {"/cspm/aws/es/elasticsearch-https-only"}, + "AWS-0042": {"/cspm/aws/es/elasticsearch-logging-enabled"}, + "AWS-0043": {"/cspm/aws/es/elasticsearch-node-to-node-encryption"}, + "AWS-0126": {"/cspm/aws/es/elasticsearch-tls-version"}, + "AWS-0144": {"/cspm/aws/iam/access-keys-last-used"}, + "AWS-0146": {"/cspm/aws/iam/access-keys-rotated"}, + "AWS-0143": {"/cspm/aws/iam/no-user-iam-policies"}, + "AWS-0141": {"/cspm/aws/iam/root-access-keys"}, + "AWS-0140": {"/cspm/aws/iam/root-account-in-use"}, + "AWS-0142": {"/cspm/aws/iam/root-mfa-enabled"}, + "AWS-0064": {"/cspm/aws/kinesis/kinesis-data-streams-encrypted"}, + "AWS-0071": {"/cspm/aws/mq/mq-log-exports-enabled"}, + "AWS-0073": {"/cspm/aws/msk/msk-cluster-encryption-in-transit"}, + "AWS-0076": {"/cspm/aws/neptune/neptune-database-instance-encrypted"}, + "AWS-0077": {"/cspm/aws/rds/rds-automated-backups"}, + "AWS-0127": {"/cspm/aws/redshift/redshift-cluster-in-vpc"}, + "AWS-0088": {"/cspm/aws/s3/s3-bucket-encryption"}, + "AWS-0136": {"/cspm/aws/sns/sns-topic-cmk-encryption"}, + "AWS-0109": {"/cspm/aws/workspaces/workspaces-volume-encryption"}, } var reverseCrossOver map[string]string func init() { reverseCrossOver = make(map[string]string) - - for avdID, cspmPath := range crossOver { - reverseCrossOver[cspmPath] = avdID + for id, cspmPath := range crossOver { + reverseCrossOver[cspmPath] = id } } -func getAVDIDByCSPMPath(path string) string { - +func getIDByCSPMPath(path string) string { if id, ok := reverseCrossOver[path]; ok { return id } return "" } -func getCSPMAliasesForAVDID(avdID string) []string { - if aliases, ok := defsecReplacements[avdID]; ok { +func getCSPMAliasesByID(id string) []string { + if aliases, ok := defsecReplacements[id]; ok { return aliases } return []string{} diff --git a/docGen/cspm.go b/docGen/cspm.go index bd1a8b0d..964517e4 100644 --- a/docGen/cspm.go +++ b/docGen/cspm.go @@ -175,8 +175,8 @@ func generateCloudSploitPages(inputPagesDir, outputPagesDir, remediationsDir str } func hasDefsecOverride(remediationFile string) bool { - if avdID := getAVDIDByCSPMPath(remediationFile); avdID != "" { - // log.Printf("Override detected: '%s' has been overridden by '%s'\n", remediationFile, avdID) + if id := getIDByCSPMPath(remediationFile); id != "" { + log.Printf("Override detected: '%s' has been overridden by '%s'\n", remediationFile, id) return true } return false diff --git a/docGen/defsec.go b/docGen/defsec.go index 72f910d7..6cfcd453 100644 --- a/docGen/defsec.go +++ b/docGen/defsec.go @@ -7,6 +7,7 @@ import ( "log" "os" "path/filepath" + "slices" "sort" "strings" "text/template" @@ -15,22 +16,9 @@ import ( "github.com/aquasecurity/avd-generator/menu" "github.com/aquasecurity/avd-generator/util" - "github.com/aquasecurity/trivy/pkg/iac/framework" - "github.com/aquasecurity/trivy/pkg/iac/rego" - "github.com/aquasecurity/trivy/pkg/iac/rules" - "github.com/aquasecurity/trivy/pkg/iac/scan" + "github.com/aquasecurity/trivy-checks/pkg/rego/metadata" ) -func registerChecks(fsys fs.FS) error { - rules.Reset() - modules, err := rego.LoadPoliciesFromDirs(fsys, "checks", "lib") - if err != nil { - return fmt.Errorf("load checks: %w", err) - } - rego.RegisterRegoRules(modules) - return nil -} - type DefsecComplianceSpec struct { Spec struct { ID string `yaml:"id"` @@ -53,11 +41,15 @@ type DefsecComplianceSpec struct { } `yaml:"spec"` } -func generateDefsecComplianceSpecPages(specDir, contentDir string) { - - ruleSummaries := make(map[string]string) - for _, rule := range rules.GetRegistered(framework.ALL) { - ruleSummaries[rule.GetRule().AVDID] = rule.GetRule().Summary +func generateDefsecComplianceSpecPages(specDir, contentDir string, checksFS fs.FS) { + checksMetadata, err := metadata.LoadChecksMetadata(checksFS) + if err != nil { + fmt.Println(err) + return + } + checksByID := make(map[string]metadata.Metadata) + for _, meta := range checksMetadata { + checksByID[meta.ID()] = meta } if err := filepath.Walk(specDir, func(path string, info fs.FileInfo, err error) error { @@ -89,7 +81,7 @@ func generateDefsecComplianceSpecPages(specDir, contentDir string) { []menu.BreadCrumb{{Name: "Compliance", Url: "/compliance"}, {Name: strings.Title(spec.Spec.Category), Url: fmt.Sprintf("/compliance/%s", spec.Spec.Category)}}, spec.Spec.Category, true) - return generateDefsecComplianceSpecPage(spec, contentDir, ruleSummaries) + return generateDefsecComplianceSpecPage(spec, contentDir, checksByID) }); err != nil { fmt.Println(err) @@ -97,7 +89,7 @@ func generateDefsecComplianceSpecPages(specDir, contentDir string) { } -func generateDefsecComplianceSpecPage(spec DefsecComplianceSpec, contentDir string, ruleSummaries map[string]string) error { +func generateDefsecComplianceSpecPage(spec DefsecComplianceSpec, contentDir string, checksByID map[string]metadata.Metadata) error { for _, control := range spec.Spec.Controls { outputFilePath := filepath.Join(contentDir, spec.Spec.Category, fmt.Sprintf("%s-%s", spec.Spec.Title, spec.Spec.Version), fmt.Sprintf("%s.md", control.ID)) @@ -115,8 +107,8 @@ func generateDefsecComplianceSpecPage(spec DefsecComplianceSpec, contentDir stri "toUpper": strings.ToUpper, "toTitle": strings.Title, "getSummary": func(id string) string { - if summary, ok := ruleSummaries[id]; ok { - return fmt.Sprintf(" - %s", summary) + if meta, ok := checksByID[id]; ok { + return fmt.Sprintf(" - %s", meta.Title) } return "" }, @@ -141,15 +133,24 @@ func generateDefsecComplianceSpecPage(spec DefsecComplianceSpec, contentDir stri return nil } -func generateDefsecPages(remediationDir, contentDir string) { - for _, r := range rules.GetRegistered(framework.ALL) { - avdId := r.GetRule().AVDID - topLevelID := strings.ToLower(r.GetRule().Provider.ConstName()) - branchID := r.GetRule().Service +func generateDefsecPages(remediationDir, contentDir string, checksFS fs.FS) { + checksMetadata, err := metadata.LoadChecksMetadata(checksFS) + if err != nil { + fmt.Println(err.Error()) + return + } + for checkPath, meta := range checksMetadata { + id := meta.ID() + topLevelID := strings.ToLower(meta.Provider().ConstName()) + branchID := meta.Service() branchID = util.RemapCategory(branchID) - log.Printf("Getting remediation markdown for %s", avdId) - remediationDir := filepath.Join(remediationDir, strings.ToLower(r.GetRule().Provider.ConstName()), strings.ReplaceAll(r.GetRule().Service, "-", ""), avdId) + log.Printf("Getting remediation markdown for %s: %s", meta.ID(), checkPath) + remediationDir := filepath.Join( + remediationDir, + strings.ToLower(meta.Provider().ConstName()), strings.ReplaceAll(meta.Service(), "-", ""), + meta.ID(), + ) remediations := make(map[string]string) docsFile := filepath.Join(remediationDir, "docs.md") @@ -178,19 +179,19 @@ func generateDefsecPages(remediationDir, contentDir string) { } if _, ok := remediations["Management Console"]; !ok { - if remediationFile, ok := crossOver[avdId]; ok { + if remediationFile, ok := crossOver[id]; ok { if remediationContent := getRemediationBodyWhereExists(fmt.Sprintf("remediations-repo/%s", remediationFile), true); remediationContent != "" { - log.Printf("Can use %s for %s\n", remediationFile, avdId) + log.Printf("Can use %s for %s\n", remediationFile, id) remediations["Management Console"] = remediationContent } } } - if err := generateDefsecCheckPage(r.GetRule(), remediations, contentDir, docsFile, branchID); err != nil { - log.Printf("an error occurred writing the page for %s. %v", r.GetRule().AVDID, err) + if err := generateDefsecCheckPage(meta, remediations, contentDir, docsFile, branchID); err != nil { + log.Printf("an error occurred writing the page for %s. %v", meta.ID(), err) } - providerName := r.GetRule().Provider.DisplayName() + providerName := meta.Provider().DisplayName() misConfigurationMenu.AddNode(topLevelID, providerName, contentDir, "", []string{}, []menu.BreadCrumb{}, topLevelID, true) misConfigurationMenu.AddNode(branchID, branchID, filepath.Join(contentDir, topLevelID), @@ -203,11 +204,10 @@ func generateDefsecPages(remediationDir, contentDir string) { } } -func generateDefsecCheckPage(rule scan.Rule, remediations map[string]string, contentDir string, docsFile string, menuParent string) error { - - providerPath := strings.ToLower(rule.Provider.ConstName()) +func generateDefsecCheckPage(meta metadata.Metadata, remediations map[string]string, contentDir string, docsFile string, menuParent string) error { + providerPath := strings.ToLower(meta.Provider().ConstName()) servicePath := strings.ToLower(menuParent) - ruleIDPath := strings.ToLower(rule.AVDID) + ruleIDPath := strings.ToLower(meta.ID()) outputFilePath := strings.ReplaceAll(filepath.Join(contentDir, providerPath, servicePath, strings.ToLower(fmt.Sprintf("%s.md", ruleIDPath))), " ", "-") if err := os.MkdirAll(filepath.Dir(outputFilePath), 0777); err != nil { @@ -238,52 +238,62 @@ func generateDefsecCheckPage(rule scan.Rule, remediations map[string]string, con for k := range remediations { remediationKeys = append(remediationKeys, strings.ReplaceAll(strings.ToLower(k), " ", "_")) } - sort.Strings(remediationKeys) - var legacy string - // for Rego checks the last alias is the ID field from metadata - if len(rule.Aliases) > 0 && rule.Aliases[0] != rule.AVDID { - legacy = rule.Aliases[0] - } - var frameworks []string + for name := range meta.Frameworks() { + if name == "default" { + continue + } + frameworks = append(frameworks, strings.ToUpper(strings.ReplaceAll(name, "-", " "))) + } + sort.Strings(frameworks) - if len(rule.Frameworks) > 0 { - for framework := range rule.Frameworks { - if framework == "default" { - continue - } - frameworks = append(frameworks, strings.ToUpper(strings.ReplaceAll(string(framework), "-", " "))) + prefix := string(meta.Provider()) + if meta.Service() != "" && meta.Service() != metadata.DefaultService { + prefix += fmt.Sprintf("-%s-", meta.Service()) + } + longID := meta.Custom["long_id"].(string) + shortCode := strings.TrimPrefix(longID, prefix) + + var aliases []string + var avdid string + for _, alias := range meta.Aliases() { + if strings.HasPrefix(alias, "AVD-") { + avdid = alias + } else { + aliases = append(aliases, strings.TrimRight(alias, "\"")) } } - post := map[string]any{ - "ID": rule.ID, - "AVDID": rule.AVDID, - "Deprecated": rule.IsDeprecated(), - "AVDID_Lowered": strings.ToLower(rule.AVDID), - "LegacyID": legacy, - "LegacyID_Lowered": strings.ToLower(legacy), - "ShortName": rule.ShortCodeDisplayName(), - "Provider": strings.ToLower(rule.Provider.ConstName()), - "ProviderName": rule.Provider.DisplayName(), - "ServiceName": rule.ServiceDisplayName(), - "Service": strings.ToLower(strings.ReplaceAll(rule.Service, " ", "-")), - "Summary": rule.Summary, - "Body": documentBody.String(), - "Severity": strings.ToLower(string(rule.Severity)), - "ParentID": strings.ReplaceAll(strings.ToLower(menuParent), " ", "-"), - "Remediations": remediationKeys, - "Frameworks": frameworks, - "Source": "Trivy", + if cspmAliases := getCSPMAliasesByID(meta.ID()); len(cspmAliases) > 0 { + aliases = append(aliases, cspmAliases...) } - if aliases := getCSPMAliasesForAVDID(rule.AVDID); len(aliases) > 0 { - post["AdditionalAliases"] = aliases + slices.Sort(aliases) + + post := map[string]interface{}{ + "ID": meta.ID(), + "ID_Lowered": strings.ToLower(meta.ID()), + "AVDID": avdid, + "AVDID_Lowered": strings.ToLower(avdid), + "Aliases": aliases, + "Deprecated": meta.IsDeprecated(), + "ShortName": util.Nicify(shortCode), + "Provider": strings.ToLower(meta.Provider().ConstName()), + "ProviderName": meta.Provider().DisplayName(), + "ServiceName": util.Nicify(meta.Service()), + "Service": strings.ToLower(strings.ReplaceAll(meta.Service(), " ", "-")), + "Summary": meta.Title, + "Body": documentBody.String(), + "Severity": strings.ToLower(meta.Severity()), + "ParentID": strings.ReplaceAll(strings.ToLower(menuParent), " ", "-"), + "Remediations": remediationKeys, + "Frameworks": frameworks, + "Source": "Trivy", } - if remediationPath, ok := crossOver[rule.AVDID]; ok { + if remediationPath, ok := crossOver[meta.ID()]; ok { id := strings.ToLower(strings.ReplaceAll(strings.ReplaceAll(remediationPath, "en/", ""), ".md", "")) post["AliasID"] = id post["Source"] = "Trivy/CSPM" @@ -324,17 +334,18 @@ Follow the appropriate remediation steps below to resolve the issue. const defsecTemplate string = `--- title: {{.ShortName}} -id: {{ .AVDID }} +id: {{ .ID }} deprecated: {{ .Deprecated }} aliases: [ {{ if .AliasID}} "/cspm/{{ .AliasID}}", -{{ end }}{{ if .ID }} "/misconfig/{{ .ID | toLower }}", -{{ end }}{{ if .LegacyID }} "/misconfig/{{ .Provider }}/{{ .LegacyID_Lowered }}", -{{ end }}{{ if .LegacyID }} "/misconfig/{{ .LegacyID_Lowered }}", -{{ end }} "/misconfig/{{ .AVDID_Lowered }}", - "/misconfig/{{ .Provider }}/{{ .Service }}/{{ .AVDID_Lowered }}", -{{ if .AdditionalAliases }}{{ range $alias := .AdditionalAliases }} "{{ $alias }}", +{{ end }} "/misconfig/{{ .ID }}", + "/misconfig/{{ .ID_Lowered }}", +{{ if .AVDID }} "/misconfig/{{ .AVDID }}", + "/misconfig/{{ .AVDID_Lowered }}", +{{ end }} "{{ .Provider }}/{{ .Service }}/{{ .ID_Lowered }}", + "/misconfig/{{ .Provider }}/{{ .Service }}/{{ .ID_Lowered }}", +{{ if .Aliases }}{{ range $alias := .Aliases }} "{{ $alias }}", {{end}}{{end}} ] {{ if .Frameworks }} @@ -352,7 +363,7 @@ draft: false shortName: {{.ShortName}} severity: "{{.Severity}}" category: misconfig -keywords: "{{ .AVDID }}" +keywords: "{{ .ID }}" breadcrumbs: - name: {{ .ProviderName }} diff --git a/docGen/defsec_test.go b/docGen/defsec_test.go index 88dbd982..bff237cd 100644 --- a/docGen/defsec_test.go +++ b/docGen/defsec_test.go @@ -8,16 +8,14 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/aquasecurity/trivy/pkg/iac/rego" + trivy_checks "github.com/aquasecurity/trivy-checks" ) func TestLoadsAsExpected(t *testing.T) { - rego.LoadAndRegister() - outputDir := t.TempDir() - generateDefsecPages("../goldens/defsec/md", outputDir) + generateDefsecPages("../goldens/defsec/md", outputDir, trivy_checks.EmbeddedPolicyFileSystem) - ids := []string{"avd-aws-0018"} + ids := []string{"aws-0018"} for _, id := range ids { content, err := os.ReadFile(fmt.Sprintf("%s/aws/code-build/%s.md", outputDir, id)) diff --git a/docGen/go.mod b/docGen/go.mod index bab39155..2803a940 100644 --- a/docGen/go.mod +++ b/docGen/go.mod @@ -1,10 +1,10 @@ module github.com/aquasecurity/avd-generator -go 1.25 +go 1.25.5 require ( github.com/Masterminds/semver v1.5.0 - github.com/aquasecurity/trivy v0.68.1 + github.com/aquasecurity/trivy-checks v1.12.2-0.20251219190323-79d27547baf5 github.com/aquasecurity/vuln-list-update v0.0.0-20191016075347-3d158c2bf9a2 github.com/leekchan/gtf v0.0.0-20190214083521-5fba33c5b00b github.com/stretchr/testify v1.11.1 @@ -14,102 +14,47 @@ require ( ) require ( - dario.cat/mergo v1.0.2 // indirect - github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect - github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/cloudflare/circl v1.6.1 // indirect - github.com/cyphar/filepath-securejoin v0.6.0 // indirect - github.com/fatih/color v1.18.0 // indirect - github.com/go-ini/ini v1.67.0 // indirect - github.com/go-logr/logr v1.4.3 // indirect - github.com/go-logr/stdr v1.2.2 // indirect - github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect - github.com/mattn/go-colorable v0.1.14 // indirect - github.com/mattn/go-isatty v0.0.20 // indirect - github.com/pjbgf/sha1cd v0.3.2 // indirect - github.com/prometheus/client_golang v1.23.2 // indirect - github.com/prometheus/client_model v0.6.2 // indirect - github.com/prometheus/common v0.66.1 // indirect - github.com/prometheus/procfs v0.17.0 // indirect - github.com/skeema/knownhosts v1.3.1 // indirect - github.com/tchap/go-patricia/v2 v2.3.3 // indirect - go.opentelemetry.io/otel v1.38.0 // indirect - go.opentelemetry.io/otel/metric v1.38.0 // indirect - go.opentelemetry.io/otel/sdk v1.38.0 // indirect - go.opentelemetry.io/otel/trace v1.38.0 // indirect - golang.org/x/mod v0.30.0 // indirect - golang.org/x/tools v0.38.0 // indirect - google.golang.org/protobuf v1.36.10 // indirect + github.com/prometheus/common v0.67.4 // indirect + google.golang.org/protobuf v1.36.11 // indirect sigs.k8s.io/yaml v1.6.0 // indirect ) require ( - github.com/Microsoft/go-winio v0.6.2 // indirect - github.com/ProtonMail/go-crypto v1.3.0 // indirect - github.com/agext/levenshtein v1.2.3 // indirect - github.com/agnivade/levenshtein v1.2.1 // indirect - github.com/alecthomas/chroma v0.10.0 // indirect - github.com/aquasecurity/go-version v0.0.1 // indirect - github.com/aquasecurity/iamgo v0.0.10 // indirect - github.com/aquasecurity/jfather v0.0.8 // indirect - github.com/aquasecurity/trivy-checks v1.11.3-0.20250604022615-9a7efa7c9169 // indirect github.com/araddon/dateparse v0.0.0-20190426192744-0d74ffceef83 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect - github.com/dlclark/regexp2 v1.11.0 // indirect - github.com/emirpasic/gods v1.18.1 // indirect - github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect - github.com/go-git/go-billy/v5 v5.6.2 // indirect - github.com/go-git/go-git/v5 v5.16.3 // indirect - github.com/go-viper/mapstructure/v2 v2.4.0 // indirect + github.com/elazarl/goproxy v1.7.2 // indirect github.com/gobwas/glob v0.2.3 // indirect github.com/goccy/go-json v0.10.5 // indirect - github.com/google/uuid v1.6.0 // indirect - github.com/hashicorp/errwrap v1.1.0 // indirect - github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/hcl/v2 v2.24.0 // indirect - github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect - github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/lestrrat-go/blackmagic v1.0.4 // indirect github.com/lestrrat-go/dsig v1.0.0 // indirect github.com/lestrrat-go/dsig-secp256k1 v1.0.0 // indirect github.com/lestrrat-go/httpcc v1.0.1 // indirect github.com/lestrrat-go/httprc/v3 v3.0.1 // indirect - github.com/lestrrat-go/jwx/v3 v3.0.11 // indirect + github.com/lestrrat-go/jwx/v3 v3.0.12 // indirect github.com/lestrrat-go/option v1.0.1 // indirect github.com/lestrrat-go/option/v2 v2.0.0 // indirect github.com/mattn/go-runewidth v0.0.16 // indirect - github.com/mitchellh/go-wordwrap v1.0.1 // indirect - github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/open-policy-agent/opa v1.10.1 // indirect - github.com/owenrumney/squealer v1.2.11 // indirect + github.com/open-policy-agent/opa v1.11.0 // indirect github.com/parnurzeal/gorequest v0.2.16 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/rcrowley/go-metrics v0.0.0-20250401214520-65e299d6c5c9 // indirect github.com/rivo/uniseg v0.4.7 // indirect + github.com/rogpeppe/go-internal v1.14.1 // indirect github.com/samber/lo v1.52.0 // indirect - github.com/segmentio/asm v1.2.0 // indirect - github.com/sergi/go-diff v1.4.0 // indirect - github.com/sirupsen/logrus v1.9.4-0.20230606125235-dd1b4c2e81af // indirect - github.com/vektah/gqlparser/v2 v2.5.30 // indirect - github.com/xanzy/ssh-agent v0.3.3 // indirect + github.com/segmentio/asm v1.2.1 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect - github.com/yashtewari/glob-intersection v0.2.0 // indirect - github.com/zclconf/go-cty v1.17.0 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect - go.yaml.in/yaml/v2 v2.4.2 // indirect - golang.org/x/crypto v0.45.0 // indirect - golang.org/x/net v0.47.0 // indirect - golang.org/x/sync v0.18.0 // indirect - golang.org/x/sys v0.38.0 // indirect - golang.org/x/text v0.31.0 // indirect + go.yaml.in/yaml/v2 v2.4.3 // indirect + golang.org/x/crypto v0.46.0 // indirect + golang.org/x/net v0.48.0 // indirect + golang.org/x/sync v0.19.0 // indirect + golang.org/x/sys v0.39.0 // indirect + golang.org/x/text v0.32.0 // indirect golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9 // indirect gopkg.in/cheggaaa/pb.v1 v1.0.28 // indirect - gopkg.in/warnings.v0 v0.1.2 // indirect - k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect moul.io/http2curl v1.0.0 // indirect - mvdan.cc/sh/v3 v3.11.0 // indirect ) diff --git a/docGen/go.sum b/docGen/go.sum index ce4b3834..426954ad 100644 --- a/docGen/go.sum +++ b/docGen/go.sum @@ -1,74 +1,16 @@ -dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8= -dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA= -github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEKWjV8V+WSxDXJ4NFATAsZjh8iIbsQIg= -github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= -github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= -github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= -github.com/ProtonMail/go-crypto v1.3.0 h1:ILq8+Sf5If5DCpHQp4PbZdS1J7HDFRXz/+xKBiRGFrw= -github.com/ProtonMail/go-crypto v1.3.0/go.mod h1:9whxjD8Rbs29b4XWbB8irEcE8KHMqaR2e7GWU1R+/PE= -github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= -github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= -github.com/agnivade/levenshtein v1.2.1 h1:EHBY3UOn1gwdy/VbFwgo4cxecRznFk7fKWN1KOX7eoM= -github.com/agnivade/levenshtein v1.2.1/go.mod h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU= -github.com/alecthomas/chroma v0.10.0 h1:7XDcGkCQopCNKjZHfYrNLraA+M7e0fMiJ/Mfikbfjek= -github.com/alecthomas/chroma v0.10.0/go.mod h1:jtJATyUxlIORhUOFNA9NZDWGAQ8wpxQQqNSB4rjA/1s= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= -github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= -github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= -github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= -github.com/aquasecurity/go-version v0.0.1 h1:4cNl516agK0TCn5F7mmYN+xVs1E3S45LkgZk3cbaW2E= -github.com/aquasecurity/go-version v0.0.1/go.mod h1:s1UU6/v2hctXcOa3OLwfj5d9yoXHa3ahf+ipSwEvGT0= -github.com/aquasecurity/iamgo v0.0.10 h1:t/HG/MI1eSephztDc+Rzh/YfgEa+NqgYRSfr6pHdSCQ= -github.com/aquasecurity/iamgo v0.0.10/go.mod h1:GI9IQJL2a+C+V2+i3vcwnNKuIJXZ+HAfqxZytwy+cPk= -github.com/aquasecurity/jfather v0.0.8 h1:tUjPoLGdlkJU0qE7dSzd1MHk2nQFNPR0ZfF+6shaExE= -github.com/aquasecurity/jfather v0.0.8/go.mod h1:Ag+L/KuR/f8vn8okUi8Wc1d7u8yOpi2QTaGX10h71oY= -github.com/aquasecurity/trivy v0.68.1 h1:nIu8qsssxUnwmg7bsgvtTkHXyyeVElVQ1AfCXz7Qxms= -github.com/aquasecurity/trivy v0.68.1/go.mod h1:ATve6tcrDCW4xCs5Is/O7qG9pC4KknxY7MVLLHdh/aE= -github.com/aquasecurity/trivy-checks v1.11.3-0.20250604022615-9a7efa7c9169 h1:TckzIxUX7lZaU9f2lNxCN0noYYP8fzmSQf6a4JdV83w= -github.com/aquasecurity/trivy-checks v1.11.3-0.20250604022615-9a7efa7c9169/go.mod h1:nT69xgRcBD4NlHwTBpWMYirpK5/Zpl8M+XDOgmjMn2k= +github.com/aquasecurity/trivy-checks v1.12.2-0.20251219190323-79d27547baf5 h1:8HnXyjgCiJwVX1mTKeqdyizd7ZBmXMPL+BMQ5UZd0Nk= +github.com/aquasecurity/trivy-checks v1.12.2-0.20251219190323-79d27547baf5/go.mod h1:hBSA3ziBFwGENK6/PYNIKm6N24SFg0wsv1VXeqPG/3M= github.com/aquasecurity/vuln-list-update v0.0.0-20191016075347-3d158c2bf9a2 h1:xbdUfr2KE4THsFx9CFWtWpU91lF+YhgP46moV94nYTA= github.com/aquasecurity/vuln-list-update v0.0.0-20191016075347-3d158c2bf9a2/go.mod h1:6NhOP0CjZJL27bZZcaHECtzWdwDDm2g6yCY0QgXEGQQ= github.com/araddon/dateparse v0.0.0-20190426192744-0d74ffceef83 h1:ukTLOeMC0aVxbJWVg6hOsVJ0VPIo8w++PbNsze/pqF8= github.com/araddon/dateparse v0.0.0-20190426192744-0d74ffceef83/go.mod h1:SLqhdZcd+dF3TEVL2RMoob5bBP5R1P1qkox+HtCBgGI= -github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q= -github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bmatcuk/doublestar/v4 v4.9.1 h1:X8jg9rRZmJd4yRy7ZeNDRnM+T3ZfHv15JiBJ/avrEXE= -github.com/bmatcuk/doublestar/v4 v4.9.1/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= -github.com/bytecodealliance/wasmtime-go/v37 v37.0.0 h1:DPjdn2V3JhXHMoZ2ymRqGK+y1bDyr9wgpyYCvhjMky8= -github.com/bytecodealliance/wasmtime-go/v37 v37.0.0/go.mod h1:Pf1l2JCTUFMnOqDIwkjzx1qfVJ09xbaXETKgRVE4jZ0= -github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= -github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= -github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM= -github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cloudflare/circl v1.6.1 h1:zqIqSPIndyBh1bjLVVDHMPpVKqp8Su/V+6MeDzzQBQ0= -github.com/cloudflare/circl v1.6.1/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs= -github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= -github.com/containerd/errdefs v1.0.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= -github.com/containerd/errdefs/pkg v0.3.0 h1:9IKJ06FvyNlexW690DXuQNx2KA2cUJXx151Xdx3ZPPE= -github.com/containerd/errdefs/pkg v0.3.0/go.mod h1:NJw6s9HwNuRhnjJhM7pylWwMyAkmCQvQ4GpJHEqRLVk= -github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= -github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= -github.com/containerd/platforms v1.0.0-rc.2 h1:0SPgaNZPVWGEi4grZdV8VRYQn78y+nm6acgLGv/QzE4= -github.com/containerd/platforms v1.0.0-rc.2/go.mod h1:J71L7B+aiM5SdIEqmd9wp6THLVRzJGXfNuWCZCllLA4= -github.com/containerd/stargz-snapshotter/estargz v0.17.0 h1:+TyQIsR/zSFI1Rm31EQBwpAA1ovYgIKHy7kctL3sLcE= -github.com/containerd/stargz-snapshotter/estargz v0.17.0/go.mod h1:s06tWAiJcXQo9/8AReBCIo/QxcXFZ2n4qfsRnpl71SM= -github.com/cpuguy83/dockercfg v0.3.2 h1:DlJTyZGBDlXqUZ2Dk2Q3xHs/FtnooJJVaad2S9GKorA= -github.com/cpuguy83/dockercfg v0.3.2/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= -github.com/cyphar/filepath-securejoin v0.6.0 h1:BtGB77njd6SVO6VztOHfPxKitJvd/VPT+OFBFMOi1Is= -github.com/cyphar/filepath-securejoin v0.6.0/go.mod h1:A8hd4EnAeyujCJRrICiOWqjS1AX0a9kM5XL+NwKoYSc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 h1:NMZiJj8QnKe1LgsbDayM4UoHwbvwDRwnI3hwNaAHRnc= @@ -77,95 +19,32 @@ github.com/dgraph-io/badger/v4 v4.8.0 h1:JYph1ChBijCw8SLeybvPINizbDKWZ5n/GYbz2yh github.com/dgraph-io/badger/v4 v4.8.0/go.mod h1:U6on6e8k/RTbUWxqKR0MvugJuVmkxSNc79ap4917h4w= github.com/dgraph-io/ristretto/v2 v2.2.0 h1:bkY3XzJcXoMuELV8F+vS8kzNgicwQFAaGINAEJdWGOM= github.com/dgraph-io/ristretto/v2 v2.2.0/go.mod h1:RZrm63UmcBAaYWC1DotLYBmTvgkrs0+XhBd7Npn7/zI= -github.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54 h1:SG7nF6SRlWhcT7cNTs5R6Hk4V2lcmLz2NsG2VnInyNo= -github.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA= -github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= -github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI= -github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= -github.com/docker/docker v28.5.2+incompatible h1:DBX0Y0zAjZbSrm1uzOkdr1onVghKaftjlSWt4AFexzM= -github.com/docker/docker v28.5.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/go-connections v0.6.0 h1:LlMG9azAe1TqfR7sO+NJttz1gy6KO7VJBh+pMmjSD94= -github.com/docker/go-connections v0.6.0/go.mod h1:AahvXYshr6JgfUJGdDCs2b5EZG/vmaMAntpSFH5BFKE= -github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= -github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/ebitengine/purego v0.8.4 h1:CF7LEKg5FFOsASUj0+QwaXf8Ht6TlFxg09+S9wz0omw= -github.com/ebitengine/purego v0.8.4/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/elazarl/goproxy v1.7.2 h1:Y2o6urb7Eule09PjlhQRGNsqRfPmYI3KKQLFpCAV3+o= github.com/elazarl/goproxy v1.7.2/go.mod h1:82vkLNir0ALaW14Rc399OTTjyNREgmdL2cVoIbS6XaE= github.com/elazarl/goproxy/ext v0.0.0-20190421051319-9d40249d3c2f/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= -github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= -github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= -github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= -github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= -github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= -github.com/foxcpp/go-mockdns v1.1.0 h1:jI0rD8M0wuYAxL7r/ynTrCQQq0BVqfB99Vgk7DlmewI= -github.com/foxcpp/go-mockdns v1.1.0/go.mod h1:IhLeSFGed3mJIAXPH2aiRQB+kqz7oqu8ld2qVbOu7Wk= -github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c= -github.com/gliderlabs/ssh v0.3.8/go.mod h1:xYoytBv1sV0aL3CavoDuJIQNURXkkfPA/wxQ1pL1fAU= -github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= -github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= -github.com/go-git/go-billy/v5 v5.6.2 h1:6Q86EsPXMa7c3YZ3aLAQsMA0VlWmy43r6FHqa/UNbRM= -github.com/go-git/go-billy/v5 v5.6.2/go.mod h1:rcFC2rAsp/erv7CMz9GczHcuD0D32fWzH+MJAU+jaUU= -github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= -github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII= -github.com/go-git/go-git/v5 v5.16.3 h1:Z8BtvxZ09bYm/yYNgPKCzgWtaRqDTgIKRgIRHBfU6Z8= -github.com/go-git/go-git/v5 v5.16.3/go.mod h1:4Ge4alE/5gPs30F2H1esi2gPd69R0C39lolkucHBOp8= -github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A= -github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= -github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= -github.com/go-quicktest/qt v1.101.0 h1:O1K29Txy5P2OK0dGo59b7b0LR6wKfIhttaAhHUyn7eI= -github.com/go-quicktest/qt v1.101.0/go.mod h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow= -github.com/go-test/deep v1.1.1 h1:0r/53hagsehfO4bzD2Pgr/+RgHqhmf+k1Bpse2cTu1U= -github.com/go-test/deep v1.1.1/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= -github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= -github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4= github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= -github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ= -github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw= github.com/google/flatbuffers v25.2.10+incompatible h1:F3vclr7C3HpB1k9mxCGRMXq6FdUalZ6H/pNX4FP1v0Q= github.com/google/flatbuffers v25.2.10+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= -github.com/google/go-containerregistry v0.20.6 h1:cvWX87UxxLgaH76b4hIvya6Dzz9qHB31qAwjAohdSTU= -github.com/google/go-containerregistry v0.20.6/go.mod h1:T0x8MuoAoKX/873bkeSfLD2FAkwCDf9/HZgsFJ02E2Y= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 h1:8Tjv8EJ+pM1xP8mK6egEbD1OgnVTyacbefKhmbLhIhU= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2/go.mod h1:pkJQ2tZHJ0aFOVEEot6oZmaVEZcRme73eIFmhiVuRWs= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= -github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= -github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/hcl/v2 v2.24.0 h1:2QJdZ454DSsYGoaE6QheQZjtKZSUs9Nh2izTWiwQxvE= -github.com/hashicorp/hcl/v2 v2.24.0/go.mod h1:oGoO1FIQYfn/AgyOhlg9qLC6/nOJPX3qGbkZpYAcqfM= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= -github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/klauspost/compress v1.18.1 h1:bcSGx7UbpBqMChDtsF28Lw6v/G94LPrrbMbdC3JH2co= github.com/klauspost/compress v1.18.1/go.mod h1:ZQFFVG+MdnR0P+l6wpXgIL4NTtwiKIdBnrBd8Nrxr+0= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -189,16 +68,12 @@ github.com/lestrrat-go/httpcc v1.0.1 h1:ydWCStUeJLkpYyjLDHihupbn2tYmZ7m22BGkcvZZ github.com/lestrrat-go/httpcc v1.0.1/go.mod h1:qiltp3Mt56+55GPVCbTdM9MlqhvzyuL6W/NMDA8vA5E= github.com/lestrrat-go/httprc/v3 v3.0.1 h1:3n7Es68YYGZb2Jf+k//llA4FTZMl3yCwIjFIk4ubevI= github.com/lestrrat-go/httprc/v3 v3.0.1/go.mod h1:2uAvmbXE4Xq8kAUjVrZOq1tZVYYYs5iP62Cmtru00xk= -github.com/lestrrat-go/jwx/v3 v3.0.11 h1:yEeUGNUuNjcez/Voxvr7XPTYNraSQTENJgtVTfwvG/w= -github.com/lestrrat-go/jwx/v3 v3.0.11/go.mod h1:XSOAh2SiXm0QgRe3DulLZLyt+wUuEdFo81zuKTLcvgQ= +github.com/lestrrat-go/jwx/v3 v3.0.12 h1:p25r68Y4KrbBdYjIsQweYxq794CtGCzcrc5dGzJIRjg= +github.com/lestrrat-go/jwx/v3 v3.0.12/go.mod h1:HiUSaNmMLXgZ08OmGBaPVvoZQgJVOQphSrGr5zMamS8= github.com/lestrrat-go/option v1.0.1 h1:oAzP2fvZGQKWkvHa1/SAcFolBEca1oN+mQ7eooNBEYU= github.com/lestrrat-go/option v1.0.1/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= github.com/lestrrat-go/option/v2 v2.0.0 h1:XxrcaJESE1fokHy3FpaQ/cXW8ZsIdWcdFzzLOcID3Ss= github.com/lestrrat-go/option/v2 v2.0.0/go.mod h1:oSySsmzMoR0iRzCDCaUfsCzxQHUEuhOViQObyy7S6Vg= -github.com/lufia/plan9stats v0.0.0-20240226150601-1dcf7310316a h1:3Bm7EwfUQUvhNeKIkUct/gl9eod1TcXuj8stxvi/GoI= -github.com/lufia/plan9stats v0.0.0-20240226150601-1dcf7310316a/go.mod h1:ilwx/Dta8jXAgpFYFvSWEMwxmbWXyiUHkd5FwyKhb5k= -github.com/magiconair/properties v1.8.10 h1:s31yESBquKXCV9a/ScB3ESkOjUYYv+X0rg8SYxI99mE= -github.com/magiconair/properties v1.8.10/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= @@ -209,56 +84,24 @@ github.com/mattn/go-jsonpointer v0.0.0-20180225143300-37667080efed/go.mod h1:SDJ github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/miekg/dns v1.1.58 h1:ca2Hdkz+cDg/7eNF6V56jjzuZ4aCAE+DbVkILdQWG/4= -github.com/miekg/dns v1.1.58/go.mod h1:Ypv+3b/KadlvW9vJfXOTf300O4UqaHFzFCuHz+rPkBY= -github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= -github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= -github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= -github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= -github.com/moby/go-archive v0.1.0 h1:Kk/5rdW/g+H8NHdJW2gsXyZ7UnzvJNOy6VKJqueWdcQ= -github.com/moby/go-archive v0.1.0/go.mod h1:G9B+YoujNohJmrIYFBpSd54GTUB4lt9S+xVQvsJyFuo= -github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= -github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= -github.com/moby/sys/sequential v0.6.0 h1:qrx7XFUd/5DxtqcoH1h438hF5TmOvzC/lspjy7zgvCU= -github.com/moby/sys/sequential v0.6.0/go.mod h1:uyv8EUTrca5PnDsdMGXhZe6CCe8U/UiTWd+lL+7b/Ko= -github.com/moby/sys/user v0.4.0 h1:jhcMKit7SA80hivmFJcbB1vqmw//wU61Zdui2eQXuMs= -github.com/moby/sys/user v0.4.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs= -github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= -github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= -github.com/moby/term v0.5.2 h1:6qk3FJAFDs6i/q3W/pQ97SX192qKfZgGjCQqfCJkgzQ= -github.com/moby/term v0.5.2/go.mod h1:d3djjFCrjnB+fl8NJux+EJzu0msscUP+f8it8hPkFLc= -github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/onsi/gomega v1.36.3 h1:hID7cr8t3Wp26+cYnfcjR6HpJ00fdogN6dqZ1t6IylU= -github.com/onsi/gomega v1.36.3/go.mod h1:8D9+Txp43QWKhM24yyOBEdpkzN8FvJyAwecBgsU4KU0= -github.com/open-policy-agent/opa v1.10.1 h1:haIvxZSPky8HLjRrvQwWAjCPLg8JDFSZMbbG4yyUHgY= -github.com/open-policy-agent/opa v1.10.1/go.mod h1:7uPI3iRpOalJ0BhK6s1JALWPU9HvaV1XeBSSMZnr/PM= -github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= -github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= -github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M= -github.com/owenrumney/squealer v1.2.11 h1:vMudrj70VeOzY+t7Phz9Yo0wAgm4kXes9DcTLBVDqGY= -github.com/owenrumney/squealer v1.2.11/go.mod h1:8KOuitfOfmS/OtzgxQbxnnrbngAGopfgKB/BiGGpqGA= +github.com/open-policy-agent/opa v1.11.0 h1:eOd/jJrbavakiX477yT4LrXZfUWViAot/AsKsjsfe7o= +github.com/open-policy-agent/opa v1.11.0/go.mod h1:QimuJO4T3KYxWzrmAymqlFvsIanCjKrGjmmC8GgAdgE= github.com/parnurzeal/gorequest v0.2.16 h1:T/5x+/4BT+nj+3eSknXmCTnEVGSzFzPGdpqmUVVZXHQ= github.com/parnurzeal/gorequest v0.2.16/go.mod h1:3Kh2QUMJoqw3icWAecsyzkpY7UzRfDhbRdTjtNwNiUE= -github.com/pjbgf/sha1cd v0.3.2 h1:a9wb0bp1oC2TGwStyn0Umc/IGKQnEgF0vVaZ8QF8eo4= -github.com/pjbgf/sha1cd v0.3.2/go.mod h1:zQWigSxVmsHEZow5qaLtPYxpcKMMQpa09ixqBxuCS6A= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 h1:o4JXh1EVt9k/+g42oCprj/FisM4qX9L3sZB3upGN2ZU= -github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= -github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= -github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= +github.com/prometheus/common v0.67.4 h1:yR3NqWO1/UyO1w2PhUvXlGQs/PtFmoveVO0KZ4+Lvsc= +github.com/prometheus/common v0.67.4/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI= github.com/prometheus/procfs v0.17.0 h1:FuLQ+05u4ZI+SS/w9+BWEM2TXiHKsUQ9TADiRH7DuK0= github.com/prometheus/procfs v0.17.0/go.mod h1:oPQLaDAMRbA+u8H5Pbfq+dl3VDAvHxMUOVhe0wYB2zw= github.com/rcrowley/go-metrics v0.0.0-20250401214520-65e299d6c5c9 h1:bsUq1dX0N8AOIL7EB/X911+m4EHsnWEHeJ0c+3TTBrg= @@ -271,159 +114,77 @@ github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0t github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/samber/lo v1.52.0 h1:Rvi+3BFHES3A8meP33VPAxiBZX/Aws5RxrschYGjomw= github.com/samber/lo v1.52.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0= -github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys= -github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= -github.com/sergi/go-diff v1.4.0 h1:n/SP9D5ad1fORl+llWyN+D6qoUETXNZARKjyY2/KVCw= -github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= -github.com/shirou/gopsutil/v4 v4.25.6 h1:kLysI2JsKorfaFPcYmcJqbzROzsBWEOAtw6A7dIfqXs= -github.com/shirou/gopsutil/v4 v4.25.6/go.mod h1:PfybzyydfZcN+JMMjkF6Zb8Mq1A/VcogFFg7hj50W9c= +github.com/segmentio/asm v1.2.1 h1:DTNbBqs57ioxAD4PrArqftgypG4/qNpXoJx8TVXxPR0= +github.com/segmentio/asm v1.2.1/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= github.com/simplereach/timeutils v1.2.0 h1:btgOAlu9RW6de2r2qQiONhjgxdAG7BL6je0G6J/yPnA= github.com/simplereach/timeutils v1.2.0/go.mod h1:VVbQDfN/FHRZa1LSqcwo4kNZ62OOyqLLGQKYB3pB0Q8= -github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.4-0.20230606125235-dd1b4c2e81af h1:Sp5TG9f7K39yfB+If0vjp97vuT74F72r8hfRpP8jLU0= github.com/sirupsen/logrus v1.9.4-0.20230606125235-dd1b4c2e81af/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/skeema/knownhosts v1.3.1 h1:X2osQ+RAjK76shCbvhHHHVl3ZlgDm8apHEHFqRjnBY8= -github.com/skeema/knownhosts v1.3.1/go.mod h1:r7KTdC8l4uxWRyK2TpQZ/1o5HaSzh06ePQNxPwTcfiY= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a h1:pa8hGb/2YqsZKovtsgrwcDH1RZhVbTKCjLp47XpqCDs= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/tchap/go-patricia/v2 v2.3.3 h1:xfNEsODumaEcCcY3gI0hYPZ/PcpVv5ju6RMAhgwZDDc= -github.com/tchap/go-patricia/v2 v2.3.3/go.mod h1:VZRHKAb53DLaG+nA9EaYYiaEx6YztwDlLElMsnSHD4k= -github.com/testcontainers/testcontainers-go v0.40.0 h1:pSdJYLOVgLE8YdUY2FHQ1Fxu+aMnb6JfVz1mxk7OeMU= -github.com/testcontainers/testcontainers-go v0.40.0/go.mod h1:FSXV5KQtX2HAMlm7U3APNyLkkap35zNLxukw9oBi/MY= -github.com/testcontainers/testcontainers-go/modules/localstack v0.40.0 h1:b+lN2Ch4J/6EwqB+Af+QQbSfv4sFGetHlBHpXi+1yJU= -github.com/testcontainers/testcontainers-go/modules/localstack v0.40.0/go.mod h1:8LuTSboTo2MJKFKV5xH6z4ZH1s3jhRJWwvtPJzKogj4= -github.com/tklauser/go-sysconf v0.3.13 h1:GBUpcahXSpR2xN01jhkNAbTLRk2Yzgggk8IM08lq3r4= -github.com/tklauser/go-sysconf v0.3.13/go.mod h1:zwleP4Q4OehZHGn4CYZDipCgg9usW5IJePewFCGVEa0= -github.com/tklauser/numcpus v0.7.0 h1:yjuerZP127QG9m5Zh/mSO4wqurYil27tHrqwRoRjpr4= -github.com/tklauser/numcpus v0.7.0/go.mod h1:bb6dMVcj8A42tSE7i32fsIUCbQNllK5iDguyOZRUzAY= github.com/umisama/go-cpe v0.0.0-20190323060751-cdd6c3c28a23 h1:+168JmE638t0OxroPRx7BUbkB91hF3GWS1OkvITgdT0= github.com/umisama/go-cpe v0.0.0-20190323060751-cdd6c3c28a23/go.mod h1:Jv/KoYWD3+46wW8r3pEwISwtgv5Q8NTfFto2wFRKvoA= github.com/valyala/fastjson v1.6.4 h1:uAUNq9Z6ymTgGhcm0UynUAB6tlbakBrz6CQFax3BXVQ= github.com/valyala/fastjson v1.6.4/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= -github.com/vbatts/tar-split v0.12.2 h1:w/Y6tjxpeiFMR47yzZPlPj/FcPLpXbTUi/9H7d3CPa4= -github.com/vbatts/tar-split v0.12.2/go.mod h1:eF6B6i6ftWQcDqEn3/iGFRFRo8cBIMSJVOpnNdfTMFA= -github.com/vektah/gqlparser/v2 v2.5.30 h1:EqLwGAFLIzt1wpx1IPpY67DwUujF1OfzgEyDsLrN6kE= -github.com/vektah/gqlparser/v2 v2.5.30/go.mod h1:D1/VCZtV3LPnQrcPBeR/q5jkSQIPti0uYCP/RI0gIeo= -github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= -github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= -github.com/yashtewari/glob-intersection v0.2.0 h1:8iuHdN88yYuCzCdjt0gDe+6bAhUwBeEWqThExu54RFg= -github.com/yashtewari/glob-intersection v0.2.0/go.mod h1:LK7pIC3piUjovexikBbJ26Yml7g8xa5bsjfx2v1fwok= -github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= -github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -github.com/zclconf/go-cty v1.17.0 h1:seZvECve6XX4tmnvRzWtJNHdscMtYEx5R7bnnVyd/d0= -github.com/zclconf/go-cty v1.17.0/go.mod h1:wqFzcImaLTI6A5HfsRwB0nj5n0MRZFwmey8YoFPPs3U= -github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo= -github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG0FI8OiXhBfcRtqqHcZcka+gU3cskNuf05R18= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0/go.mod h1:h06DGIukJOevXaj/xrNjhi/2098RZzcLTbc0jDAUbsg= go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8= go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 h1:lwI4Dc5leUqENgGuQImwLo4WnuXFPetmPpkLi2IrX54= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0/go.mod h1:Kz/oCE7z5wuyhPxsXDuaPteSWqjSBD5YaSdbxZYGbGk= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 h1:aTL7F04bJHUlztTsNGJ2l+6he8c+y/b//eR0jjjemT4= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0/go.mod h1:kldtb7jDTeol0l3ewcmd8SDvx3EmIE7lyvqbasU3QC4= go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA= go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI= -go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E= -go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg= -go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM= -go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA= go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE= go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs= -go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOVAtj4= -go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE= -go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= -go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= -go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= +go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= -golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= -golang.org/x/mod v0.30.0 h1:fDEXFVZ/fmCKProc/yAXXUijritrDzahmwwefnjoPFk= -golang.org/x/mod v0.30.0/go.mod h1:lAsf5O2EvJeSFMiBxXDki7sCgAxEUcZHXoXMKT4GJKc= +golang.org/x/crypto v0.46.0 h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU= +golang.org/x/crypto v0.46.0/go.mod h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= -golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= -golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= -golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU= +golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= +golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= +golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= -golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= -golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= +golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk= +golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= -golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU= +golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= -golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9 h1:LLhsEBxRTBLuKlQxFBYUOU8xyFgXv6cOTp2HASDlsDk= golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= -google.golang.org/genproto v0.0.0-20250603155806-513f23925822 h1:rHWScKit0gvAPuOnu87KpaYtjK5zBMLcULh7gxkCXu4= -google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 h1:BIRfGDEjiHRrk0QKZe3Xv2ieMhtgRGeLcZQ0mIVn4EY= -google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5/go.mod h1:j3QtIyytwqGr1JUDtYXwtMXWPKsEa5LtzIFN1Wn5WvE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 h1:M1rk8KBnUsBDg1oPGHNCxG4vc1f49epmTO7xscSajMk= -google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= -google.golang.org/grpc v1.76.0 h1:UnVkv1+uMLYXoIz6o7chp59WfQUYA2ex/BXQ9rHZu7A= -google.golang.org/grpc v1.76.0/go.mod h1:Ju12QI8M6iQJtbcsV+awF5a4hfJMLi4X0JLo94ULZ6c= -google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= -google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= +google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= +google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/cheggaaa/pb.v1 v1.0.28 h1:n1tBJnnK2r7g9OW2btFH91V92STTUevLXYFb8gy9EMk= gopkg.in/cheggaaa/pb.v1 v1.0.28/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce h1:xcEWjVhvbDy+nHP67nPDDpbYrY+ILlfndk4bRioVHaU= gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= -gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= moul.io/http2curl v1.0.0 h1:6XwpyZOYsgZJrU8exnG87ncVkU1FVCcTRpwzOkTDUi8= moul.io/http2curl v1.0.0/go.mod h1:f6cULg+e4Md/oW1cYmwW4IWQOVl2lGbmCNGOHvzX2kE= -mvdan.cc/sh/v3 v3.11.0 h1:q5h+XMDRfUGUedCqFFsjoFjrhwf2Mvtt1rkMvVz0blw= -mvdan.cc/sh/v3 v3.11.0/go.mod h1:LRM+1NjoYCzuq/WZ6y44x14YNAI0NK7FLPeQSaFagGg= sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= diff --git a/docGen/main.go b/docGen/main.go index 30d37d7e..f4ce48ca 100644 --- a/docGen/main.go +++ b/docGen/main.go @@ -2,6 +2,7 @@ package main import ( "fmt" + "log" "os" "strconv" "time" @@ -32,6 +33,7 @@ func (realClock) Now(format ...string) string { } func main() { + log.SetOutput(os.Stdout) firstYear := 1999 @@ -39,18 +41,14 @@ func main() { Years = append(Years, strconv.Itoa(y)) } - if err := registerChecks(os.DirFS("../avd-repo/trivy-policies-repo")); err != nil { - fail(err) - } - + checksFS := os.DirFS("../avd-repo/trivy-policies-repo/checks") generateChainBenchPages("../avd-repo/chain-bench-repo/internal/checks", "../avd-repo/content/compliance") - generateDefsecComplianceSpecPages("../avd-repo/trivy-policies-repo/pkg/compliance", "../avd-repo/content/compliance") + generateDefsecComplianceSpecPages("../avd-repo/trivy-policies-repo/pkg/compliance", "../avd-repo/content/compliance", checksFS) generateCloudSploitPages("../avd-repo/cloudsploit-repo/plugins", "../avd-repo/content/misconfig", "../avd-repo/remediations-repo/en") - generateDefsecPages("../avd-repo/trivy-policies-repo/avd_docs", "../avd-repo/content/misconfig") + generateDefsecPages("../avd-repo/trivy-policies-repo/avd_docs", "../avd-repo/content/misconfig", checksFS) nvdGenerator := NewNvdGenerator() nvdGenerator.GenerateVulnPages() - for _, year := range Years { nvdGenerator.GenerateReservedPages(year, realClock{}) } diff --git a/goldens/defsec/expected/avd-aws-0018.md b/goldens/defsec/expected/aws-0018.md similarity index 92% rename from goldens/defsec/expected/avd-aws-0018.md rename to goldens/defsec/expected/aws-0018.md index 3419ed45..5c759127 100644 --- a/goldens/defsec/expected/avd-aws-0018.md +++ b/goldens/defsec/expected/aws-0018.md @@ -1,14 +1,18 @@ --- title: Enable Encryption -id: AVD-AWS-0018 +id: AWS-0018 deprecated: false aliases: [ + "/misconfig/AWS-0018", + "/misconfig/aws-0018", + "/misconfig/AVD-AWS-0018", "/misconfig/avd-aws-0018", - "/misconfig/avd-aws-0018", - "/misconfig/aws/codebuild/avd-aws-0018", - "/cspm/aws/codebuild/project-artifacts-encrypted", + "aws/codebuild/aws-0018", + "/misconfig/aws/codebuild/aws-0018", "/cspm/aws/code-build/project-artifacts-encrypted", + "/cspm/aws/codebuild/project-artifacts-encrypted", + "enable-encryption", ] @@ -20,12 +24,12 @@ draft: false shortName: Enable Encryption severity: "high" category: misconfig -keywords: "AVD-AWS-0018" +keywords: "AWS-0018" breadcrumbs: - name: AWS path: /misconfig/aws - - name: Codebuild + - name: Code Build path: /misconfig/aws/codebuild avd_page_type: avd_page diff --git a/goldens/defsec/md/aws/codebuild/AVD-AWS-0018/CloudFormation.md b/goldens/defsec/md/aws/codebuild/AWS-0018/CloudFormation.md similarity index 100% rename from goldens/defsec/md/aws/codebuild/AVD-AWS-0018/CloudFormation.md rename to goldens/defsec/md/aws/codebuild/AWS-0018/CloudFormation.md diff --git a/goldens/defsec/md/aws/codebuild/AVD-AWS-0018/Terraform.md b/goldens/defsec/md/aws/codebuild/AWS-0018/Terraform.md similarity index 100% rename from goldens/defsec/md/aws/codebuild/AVD-AWS-0018/Terraform.md rename to goldens/defsec/md/aws/codebuild/AWS-0018/Terraform.md diff --git a/goldens/defsec/md/aws/codebuild/AVD-AWS-0018/docs.md b/goldens/defsec/md/aws/codebuild/AWS-0018/docs.md similarity index 100% rename from goldens/defsec/md/aws/codebuild/AVD-AWS-0018/docs.md rename to goldens/defsec/md/aws/codebuild/AWS-0018/docs.md diff --git a/nginx.conf b/nginx.conf deleted file mode 100644 index b480c03e..00000000 --- a/nginx.conf +++ /dev/null @@ -1,18 +0,0 @@ -events {} - -http { - # Serve files with correct mimetypes on OSX - # location may have to be adjusted depending on your OS and nginx install - include /usr/local/etc/nginx/mime.types; - - server { - listen 9011; - access_log http.access.log; - error_log http.error.log; - - root .; - location / { - - } - } -} diff --git a/themes/aquablank/layouts/partials/page_nvd.html b/themes/aquablank/layouts/partials/page_nvd.html index 74bcccb1..f24e96bb 100644 --- a/themes/aquablank/layouts/partials/page_nvd.html +++ b/themes/aquablank/layouts/partials/page_nvd.html @@ -147,63 +147,13 @@