@actual-app/api
An API for Actual
Supply chain provenance
Status for the latest visible version.
Maintainers
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| provenance | publisher-changed | AI (provenance): Transition to GitHub Actions publishing with SLSA/Sigstore attestation; legitimate CI/CD migration for actualbudget org. | ai | |
| phantom-deps | phantom-dep:@actual-app/crdt | AI (phantom-deps): Same org scope (@actual-app); likely used transitively or in build config, not a risk. | ai | |
| phantom-deps | phantom-dep:compare-versions | AI (phantom-deps): Referenced in config files per finding; stable false positive for this package. | ai | |
| publish-pattern | dormant-publish | AI (publish-pattern): Package has 389 versions and 13.7k weekly downloads; dormancy flag reflects new publisher account (matissjanis), not actual package inactivity. Legitimate maintainer transition. | ai | |
| phantom-deps | phantom-dep:better-sqlite3 | AI (phantom-deps): better-sqlite3 is a declared runtime dep used as a SQLite backend; referenced in config files rather than direct JS imports is normal for this package's architecture. | ai | |
| typosquat | typosquat.levenshtein:hapi | AI (typosquat): @actual-app/api is the legitimate Actual Budget API package; scoped name similarity to 'hapi' is purely coincidental string distance, not impersonation. | ai | |
| dependencies | unvetted-dep:@actual-app/crdt | AI (dependencies): First-party dependency from the same @actual-app org; expected internal dependency for Actual Budget packages. | ai | |
| typosquat | typosquat.levenshtein:pg | AI (typosquat): Scoped package @actual-app/api has no plausible impersonation relationship to 'pg'; false positive from Levenshtein distance on full scoped name. | ai | |
| typosquat | typosquat.levenshtein:joi | AI (typosquat): Scoped package @actual-app/api has no plausible impersonation relationship to 'joi'; false positive from Levenshtein distance on full scoped name. | ai | |
| typosquat | typosquat.levenshtein:ajv | AI (typosquat): Scoped package @actual-app/api has no plausible impersonation relationship to 'ajv'; false positive from Levenshtein distance on full scoped name. | ai | |
| dependencies | unvetted-dep:@actual-app/core | AI (dependencies): First-party dependency from the same @actual-app org; expected internal dependency for Actual Budget packages. | ai |
Versions (showing 10 of 10)
| Version | Deps | Published |
|---|---|---|
| 26.5.2 | 5 / 6 | |
| 26.5.1 | 5 / 6 | |
| 26.5.0 | 4 / 6 | |
| 26.4.0 | 6 / 7 | |
| 26.3.0 | 5 / 4 | |
| 26.2.1 | 5 / 3 | |
| 26.2.0 | 5 / 3 | |
| 26.1.0 | 5 / 3 | |
| 25.12.0 | 5 / 3 | |
| 25.11.0 | 5 / 3 |
v26.5.2
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v26.5.1
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v26.5.0
2 findingsThis version was published by a different npm account than previous versions on 2026-05-03. This could indicate a legitimate maintainer transition or an account compromise.
Published via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v26.4.0
2 findingsPackage name '@actual-app/api' is 1 edit(s) away from popular package 'hapi'.
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v26.3.0
2 findingsThis version was published by a different npm account than previous versions on 2026-03-03. This could indicate a legitimate maintainer transition or an account compromise.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v26.2.1
2 findingsThis version was published by a different npm account than previous versions on 2026-02-22. This could indicate a legitimate maintainer transition or an account compromise.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v26.2.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v26.1.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v25.12.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v25.11.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.