Skip to content
This repository was archived by the owner on Oct 10, 2026. It is now read-only.

v0.3.0 - first observed vectors

Choose a tag to compare

@Dashtid Dashtid released this 31 Aug 14:01
· 56 commits to main since this release
0c739fb

The first observed vectors reach PyPI.

0.2.1 shipped on 2026-08-25, five days before the first observed promotion — so
pip install subvectors has been serving a corpus with zero observation blocks
while the README claimed live-AWS provenance. This release closes that gap.

Provenance

Six vectors moved from documented (derived from primary documentation) to
observed (recorded from a live exchange), each carrying an observation block
with method, date, evidence and tool version. All six were recorded against live
AWS via the IAM policy simulator on 2026-08-29/30, aws-cli/2.36.33:

  • gh-aws-case-mismatch-rejected
  • gh-aws-org-wide-wildcard-repo
  • gh-aws-repo-wide-wildcard-suffix
  • gh-aws-ref-wildcard-spans-nested-branch
  • gh-aws-branch-wildcard-zero-width — * matches the empty string, so
    ...refs/heads/main* admits main itself as well as main2. Previously an
    interpretation of "any combination of characters"; now measured.
  • gh-aws-multivalue-loose-value-poisons-list — confirmed twice: the policy
    simulator returns allowed for an unrelated repo's pull_request subject
    against a two-value list whose second value is org-wide, and iam:CreateRole
    accepts a trust policy carrying that list (and one carrying a literal *
    among its values) while rejecting a condition-less policy with
    MalformedPolicyDocument. AWS's creation-time guardrail blocks the 2023
    sub-less class but does not inspect the other values of an OR-list.

Current split: 127 documented / 6 observed.

Corpus

14 suites — 133 vectors across 5 issuers (github, gitlab, bitbucket,
circleci, terraform-cloud) and 6 consumer semantics (aws-stringlike,
aws-stringequals, aws-all, azure-fic-exact, azure-fic-flexible,
gcp-cel). github-aws is at suite version 0.3.2.

Also in this release: docs/OBSERVED-PROMOTION.md, the runbook defining what
observed requires and how to promote a vector, plus scripts/observe_aws.py,
which drives corpus vectors through aws iam simulate-custom-policy.

Install

pip install subvectors==0.3.0

The wheel ships the entire corpus. The vectors are CC0; everything else is
Apache-2.0.