redact-secret · Report
Access token (fm1r_, fm1a_, fm2_)
A macaroon member run starting at the first fm1r_, fm1a_ or fm2_ (std Base64, 64 or more characters), including comma-joined fo1_ members.
Research record
No research record for this family
snapshot-2026.10.06.4 has no family record for fly:access-token, so its review state, format revision and format facts are not recorded here.
Not recorded
Format
Format not recorded
No format contract is recorded for this family in the pinned release.
Not recordedBenchmark dossier notes
- Shape
- first member
fm1r_,fm1a_orfm2_+ at least 64[A-Za-z0-9+/_-]then up to two=, optionally comma-joined with further members (fm1r_,fm1a_,fm2_,fo1_); no upper bound. TheFlyV1scheme and its space are outside the span, which starts atfm. - Basis
- T1 by provider code (R1
superfly/macaroonformat.go, R2 Fly's own flyctl redaction rule) for the prefixes, the comma bundle, the alphabet and the missing upper bound. The 64-character floor is derived (16-byte nonce + 32-byte HMAC-SHA256 tail = 48 decoded bytes), so it is T1 only if ruling Q7 is accepted (policy-q7-floor, provisional). The scanner floors disagree (gitleaks 100, trufflehog 500 with the scheme required, both T2) and are not used. - Issuance
- not attempted; the handoff records no issuance gate. If Q7 is refused, the family waits on a structure-only check of one deploy token and one session bundle (#584).
- Contract in core
- detector-families.md (the detector
fly-token, finding typefly_access_token, redact-secret#1109, onmainand unreleased). The benchmark contract isfly-tokeninbenchmarks/lib/beta8/583h.tswith the seeded corpusbeta8-583h.
In this benchmark
No fixtures in this family yet
Nothing in the corpus targets it, so nothing is measured and no coverage is claimed.
Not measured
Looks like it, but isn't
- Collisions
fm2_hi-style test fixtures, identifiers such asfm2_config_path, the bareFlyV1scheme,FLY_API_TOKEN=${FLY_API_TOKEN}, Base64 blobs after an identifier that ends in a glue byte.
Scanner rules for this family
No peer rule maps to this family
None of the reviewed peer scanners has a rule that can match a credential of this family.
None mapped
No fixtures in this family yet
Nothing in the corpus targets it, so nothing is measured and no coverage is claimed.
Not measured
Sources
Documentation and code
- github.com/redact-secret/redact-secret/blob/3b1a5aa9935c57416a026a44f45501fd41ffeac8/docs/audits/evidence/1014/fly.md
- github.com/superfly/macaroon/blob/a0202e10fd947786884323dcbce46efbe8652171/format.go#L11-L60
- github.com/superfly/flyctl/blob/fe73b7215a0ce2ed8e846d927446c1577cbcc217/agent/server/session.go#L685
- docs.fly.io/security/tokens/
Research log
- redact-secret/redact-secret#1014Research issue
- redact-secret/redact-secret#1109Research issue
- redact-secret/redact-secret-benchmarks#583Research issue
- redact-secret/redact-secret-benchmarks#584Research issue
- Final evidence, pinned to a commit/redact-secret/redact-secret/blob/3b1a5aa9935c57416a026a44f45501fd41ffeac8/docs/audits/evidence/1014/fly.md