{"ref":"artifact:sap-samples-application-vulnerability-report-scan-user-automation","page":"/artifacts/sap-samples-application-vulnerability-report-scan-user-automation","json":"/artifacts/sap-samples-application-vulnerability-report-scan-user-automation.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"sap-samples-application-vulnerability-report-scan-user-automation","name":"SAP-samples/application-vulnerability-report-scan-user-automation","artifact_type":"sample","ecosystem":"btp","use_as":"starting-point","domain":"operations-and-runtime","origin_ring":"sap-official","description":{"one_line":"A Python script that assigns [Application Vulnerability Report](artifact:btp-application-vulnerability-report)'s scan technical user as SpaceAuditor to every Cloud Foundry space in an SAP BTP global account.","short":"Python script assigning the AVR scan user to Cloud Foundry spaces","what_it_solves":"[Application Vulnerability Report](artifact:btp-application-vulnerability-report) needs its scan technical user to hold the SpaceAuditor role in every space it is meant to scan, which otherwise means repeating the same role assignment by hand across every organisation and space in a global account. The script logs in to the btp CLI and each Cloud Foundry endpoint over SSO, lists every subaccount, organisation and space, assigns the role to `application-vulnerability-report-scanner@sap.com` in each one, and prints a summary of what it changed and any errors. It is offered as an example to review and adapt rather than a maintained tool, and runs on macOS or Windows with Python 3.13 or newer and the BTP and Cloud Foundry CLIs installed."},"links":{"repo":"https://github.com/SAP-samples/application-vulnerability-report-scan-user-automation"},"identity":{"license":"Apache-2.0"},"source_available":true,"demonstrates":["capability:account-provisioning"],"maintainers":["actor:sap-samples"],"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-14"},"drafted_with_ai":true,"contributors":["actor:fabiann2205"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"3 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-05, not archived"}],"compatibility":[{"label":"Declared for","tier":"unknown","evidence":"no BTP release lines in the atlas"},{"label":"Survived majors","tier":"unknown","evidence":"no BTP release lines in the atlas"},{"label":"Maintainer's CI","tier":"good","evidence":"REUSE compliance check green, 2026-05-18"}],"practice":[{"label":"Tests","tier":"fair","evidence":"none found in the tree"},{"label":"Docs","tier":"fair","evidence":"README 4 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":0,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-25","npm":"not published under this name","stars":0,"forks":0,"open_issues":1,"archived":false,"pushed_at":"2026-05-18","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"main","created_at":"2026-01-20T12:26:50Z","open_prs":0,"tree_truncated":false,"test_files":0,"workflows":1,"other_ci":false,"readme_bytes":4047,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2026-01-20","last_commit":"2026-05-18","commits":8,"contributors":3,"ci_status":"success","ci_run_at":"2026-05-18","ci_workflow":"REUSE compliance check","ci_event":"push","readme_path":"README.md","readme_sha":"3dd9421e0c3cf6aa415a8b95fb7cce55158a4683","repo_read":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:sap-samples","name":"SAP Samples","json":"/actors/sap-samples.json"}],"contributors":[{"ref":"actor:fabiann2205","name":"Fabian Specht","json":"/actors/fabiann2205.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}