Skip to content

Commit 9ad42f7

Browse files
committed
Add software compliance standard
1 parent 873ea13 commit 9ad42f7

30 files changed

Lines changed: 402 additions & 23 deletions

.github/workflows/release.yml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ jobs:
2222
cache: pip
2323
- run: python -m pip install -r requirements-build.txt
2424
- run: python -m unittest discover -s tests -v
25+
- name: Audit runtime dependencies
26+
shell: pwsh
27+
run: python -m pip_audit -r requirements.txt
2528
- run: python -m PyInstaller --noconfirm --clean BC-ModelVault.spec
2629
- name: Sign executable when certificate is configured
2730
if: env.WINDOWS_CERTIFICATE_BASE64 != ''
@@ -35,23 +38,32 @@ jobs:
3538
run: |
3639
$hash = (Get-FileHash dist/BC-ModelVault.exe -Algorithm SHA256).Hash.ToLowerInvariant()
3740
"$hash BC-ModelVault.exe" | Set-Content dist/SHA256SUMS.txt -Encoding ascii
41+
- name: Generate CycloneDX SBOM from resolved runtime dependencies
42+
shell: pwsh
43+
run: |
44+
python -m venv .sbom-env
45+
.\.sbom-env\Scripts\python.exe -m pip install --disable-pip-version-check -r requirements.txt
46+
.\.sbom-env\Scripts\python.exe -m pip uninstall --yes pip
47+
python -m cyclonedx_py environment .\.sbom-env\Scripts\python.exe --pyproject pyproject.toml --spec-version 1.7 --output-format JSON --output-file dist/sbom.cdx.json
3848
- name: Create user package
3949
shell: pwsh
4050
run: |
4151
New-Item -ItemType Directory -Path package/BC-ModelVault-Windows
42-
Copy-Item dist/BC-ModelVault.exe, dist/SHA256SUMS.txt, LICENSE, NOTICE package/BC-ModelVault-Windows/
52+
Copy-Item dist/BC-ModelVault.exe, dist/SHA256SUMS.txt, dist/sbom.cdx.json, LICENSE, NOTICE, THIRD_PARTY_NOTICES.md package/BC-ModelVault-Windows/
4353
Compress-Archive -Path package/BC-ModelVault-Windows/* -DestinationPath package/BC-ModelVault-Windows.zip
4454
- uses: actions/upload-artifact@v4
4555
with:
4656
name: BC-ModelVault-Windows
4757
path: |
4858
dist/BC-ModelVault.exe
4959
dist/SHA256SUMS.txt
60+
dist/sbom.cdx.json
5061
package/BC-ModelVault-Windows.zip
5162
- uses: softprops/action-gh-release@v2
5263
if: startsWith(github.ref, 'refs/tags/v')
5364
with:
5465
files: |
5566
dist/BC-ModelVault.exe
5667
dist/SHA256SUMS.txt
68+
dist/sbom.cdx.json
5769
package/BC-ModelVault-Windows.zip

.github/workflows/security.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: Security and compliance
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: read
12+
13+
jobs:
14+
python-security:
15+
runs-on: windows-latest
16+
steps:
17+
- uses: actions/checkout@v4
18+
- uses: actions/setup-python@v5
19+
with:
20+
python-version: "3.12"
21+
cache: pip
22+
- run: python -m pip install -r requirements-build.txt
23+
- run: python -m unittest discover -s tests -v
24+
- name: Audit runtime dependencies
25+
shell: pwsh
26+
run: python -m pip_audit -r requirements.txt
27+
- name: Generate CycloneDX SBOM
28+
shell: pwsh
29+
run: |
30+
python -m venv .sbom-env
31+
.\.sbom-env\Scripts\python.exe -m pip install --disable-pip-version-check -r requirements.txt
32+
.\.sbom-env\Scripts\python.exe -m pip uninstall --yes pip
33+
python -m cyclonedx_py environment .\.sbom-env\Scripts\python.exe --pyproject pyproject.toml --spec-version 1.7 --output-format JSON --output-file sbom.cdx.json
34+
- uses: actions/upload-artifact@v4
35+
with:
36+
name: compliance-sbom
37+
path: sbom.cdx.json
38+
39+
dependency-review:
40+
if: github.event_name == 'pull_request'
41+
runs-on: ubuntu-latest
42+
steps:
43+
- uses: actions/checkout@v4
44+
- uses: actions/dependency-review-action@v4
45+
with:
46+
fail-on-severity: high

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ build/
77
dist/
88
package/
99
tmp/
10+
/docs/compliance/private/
1011
*.spec.bak
1112

1213
# Artefatti locali: pubblicarli come allegati delle GitHub Releases.

CHANGELOG.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
## Unreleased
44

5+
- Added the BC Software Compliance Standard pilot: public provenance, AI-development, privacy, CRA, threat/risk, support/EOL, known-issue, and release-control records.
6+
- Added CycloneDX SBOM generation, dependency vulnerability auditing, dependency review, third-party notices, and compliance artifacts to Windows releases.
7+
- Standardized public copyright, authorship, and product metadata on the Balzano Consulting name.
8+
59
## [1.0.1] — 2026-08-07
610

711
- Removed the version number from the window title and added version, license, developer, website, and GitHub product links to Settings.
@@ -43,10 +47,10 @@ First stable release of BC ModelVault.
4347
- Downloads pinned to the verified commit, pause/resume, and final validation.
4448
- Overall progress, transfer speed, ETA, and notification area integration.
4549
- Italian and English interfaces with light and dark themes.
46-
- Portable Windows executable with BC Consulting branding.
50+
- Portable Windows executable with Balzano Consulting branding.
4751

4852
### Distribution
4953

5054
- Windows 1.0.0 version metadata.
5155
- Reproducible PyInstaller build.
52-
- PolyForm Noncommercial License 1.0.0 with attribution to BC Consulting.
56+
- PolyForm Noncommercial License 1.0.0 with attribution to Balzano Consulting.

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@ Describe the problem, solution, completed checks, and any effect on security, to
1717

1818
## Rights and licensing
1919

20-
By submitting a contribution, you represent that you have the right to provide it and agree that it may be distributed under the project's license. Contributions must preserve the original attribution. Accepting a contribution does not transfer trademarks or rights to the BC Consulting logo and grants no additional commercial rights.
20+
By submitting a contribution, you represent that you have the right to provide it, that you have identified derived material, and that the contribution does not knowingly violate third-party rights. You agree that it may be distributed under the project's license. Contributions must preserve the original attribution. Accepting a contribution does not transfer trademarks or rights to the Balzano Consulting logo and grants no additional commercial rights. Balzano Consulting may require a separate contributor IP agreement before accepting material contributions.

EOL_POLICY.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# End-of-life policy
2+
3+
Balzano Consulting supports the latest patch release in a supported minor line. Older patch releases may be superseded immediately when a security or integrity fix is published.
4+
5+
| Release line | Security support through | Status |
6+
| --- | --- | --- |
7+
| 1.x | 31 December 2028 | Supported |
8+
| < 1.0 | Ended | Unsupported |
9+
10+
At least 90 days before planned end of support, the project should announce the date in the README, changelog, and GitHub release notes. Balzano Consulting may extend support or issue an emergency fix after EOL, but this policy does not promise such an extension.
11+
12+
Users of unsupported versions should upgrade before reporting vulnerabilities or requesting compatibility fixes.

KNOWN_ISSUES.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Known issues
2+
3+
- Windows SmartScreen may warn when an executable is unsigned. Verify `SHA256SUMS.txt` before running it.
4+
- Symbolic-link installation into ComfyUI can require Windows Developer Mode or elevated privileges; copy fallback remains available.
5+
- Availability, gating, and rate limits for Hugging Face repositories depend on the upstream service and the user's account permissions.
6+
- The desktop application targets Windows. Other operating systems are not release-tested.
7+
8+
Security-sensitive issues must be reported through the private process in [SECURITY.md](SECURITY.md), not added here.

LICENSE

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ PolyForm Noncommercial License 1.0.0
33
The license terms governing this software are available at:
44
https://polyformproject.org/licenses/noncommercial/1.0.0
55

6-
Required Notice: Copyright 2026 BC Consulting. All rights reserved.
6+
Required Notice: Copyright 2026 Balzano Consulting. All rights reserved.
77

88
Use of BC ModelVault is permitted only for purposes allowed by the PolyForm
99
Noncommercial License 1.0.0. Commercial use requires a separate written
10-
license from BC Consulting.
10+
license from Balzano Consulting.
1111

1212
Every distributed copy, modification, or derivative work must include this
1313
file, the license URL above, and the Required Notice without alteration.

NOTICE

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
BC ModelVault 1.0.1
22

3-
Required Notice: Copyright 2026 BC Consulting. All rights reserved.
3+
Required Notice: Copyright 2026 Balzano Consulting. All rights reserved.
44

55
BC ModelVault, its original source code, documentation, visual identity, and
6-
logo are owned by BC Consulting, except for third-party components identified
6+
logo are owned by Balzano Consulting, except for third-party components identified
77
by their respective notices and licenses.
88

99
Derivative works and redistributed copies must clearly attribute BC ModelVault
10-
and BC Consulting, preserve this notice, and state that changes were made.
11-
No endorsement by BC Consulting may be implied.
10+
and Balzano Consulting, preserve this notice, and state that changes were made.
11+
No endorsement by Balzano Consulting may be implied.
1212

1313
Commercial use is not licensed. Contact the copyright holder to request a
1414
separate commercial license.

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,10 @@ written to logs.
105105
- [Contributing](CONTRIBUTING.md)
106106
- [Security](SECURITY.md)
107107
- [Support](SUPPORT.md)
108+
- [Known issues](KNOWN_ISSUES.md)
109+
- [End-of-life policy](EOL_POLICY.md)
110+
- [Compliance and provenance](docs/compliance/README.md)
111+
- [Third-party notices](THIRD_PARTY_NOTICES.md)
108112

109113
## Project structure
110114

@@ -116,7 +120,7 @@ written to logs.
116120
- `bc_modelvault/theme.py`: light and dark themes.
117121
- `bc_modelvault/tray.py`: Windows notification area integration.
118122
- `languages/`: Italian and English catalogs.
119-
- `img/logo.png`: transparent BC Consulting logo used by the window, tray, and executable.
123+
- `img/logo.png`: transparent Balzano Consulting logo used by the window, tray, and executable.
120124
- `img/icons/`: optional PNG icons for sidebar and actions; missing icons use text fallback.
121125

122126
### Optional interface icons
@@ -136,4 +140,4 @@ installation with multiple profiles, conflict handling, and optional links.
136140

137141
## License
138142

139-
Copyright © 2026 BC Consulting. All rights reserved. This project is distributed under the **PolyForm Noncommercial License 1.0.0**. Use, modification, and redistribution are allowed only for noncommercial purposes and require preservation of the license and attribution. Commercial use requires separate permission from the copyright holder. See [LICENSE](LICENSE) and [NOTICE](NOTICE).
143+
Copyright © 2026 Balzano Consulting. All rights reserved. This project is distributed under the **PolyForm Noncommercial License 1.0.0**. Use, modification, and redistribution are allowed only for noncommercial purposes and require preservation of the license and attribution. Commercial use requires separate permission from the copyright holder. See [LICENSE](LICENSE), [NOTICE](NOTICE), and [third-party notices](THIRD_PARTY_NOTICES.md).

0 commit comments

Comments
 (0)