Skip to content
Benchmarks

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.

  • Fly.io
  • Detectors: fly-token
  • Run 2026-10-07
  • Mode published · redact-secret 0.1.0-beta.14
  • Dossier verdictReady
  • Dossier evidence levelT1 · Provider-documented
  • Dossier researched2026-09-30
Registered in the product at the 3b1a5aa re-pin (redact-secret PR #1227, unreleased), with a benchmark contract and a seeded corpus (#583, `beta8-583h`); the claim stays provisional until the conformance and arrival gates and the open ruling questions settle. Not a support claim. Handoff fly.md (READY, conditional on Q7); the span starts at fm, the FlyV1 scheme stays outside.

Research record

From credential-evidence snapshot-2026.10.06.4 · records at 77ce761 · schema 1.8.0. It describes the research on the format, not what any scanner or the product does, and not a support status.
  • Review stateNot recorded
  • Format revisionNot recorded
  • ResearchNot recorded
  • ResearchedNot recorded

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

Provider format research from credential-evidence snapshot-2026.10.06.4 · records at 77ce761 · schema 1.8.0.

Format not recorded

No format contract is recorded for this family in the pinned release.

Not recorded

Benchmark dossier notes

From the provider dossier, as written. The evidence level above says how well the format is backed; a fact the dossier does not record is not shown.
Shape
first member fm1r_, fm1a_ or fm2_ + at least 64 [A-Za-z0-9+/_-] then up to two =, optionally comma-joined with further members (fm1r_, fm1a_, fm2_, fo1_); no upper bound. The FlyV1 scheme and its space are outside the span, which starts at fm.
Basis
T1 by provider code (R1 superfly/macaroon format.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 type fly_access_token, redact-secret#1109, on main and unreleased). The benchmark contract is fly-token in benchmarks/lib/beta8/583h.ts with the seeded corpus beta8-583h.

In this benchmark

Fixture rows on the current run. Counts are for redact-secret in published · redact-secret 0.1.0-beta.14 mode.

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

Values the dossier records as resembling this credential without being one.
Collisions
fm2_hi-style test fixtures, identifiers such as fm2_config_path, the bare FlyV1 scheme, FLY_API_TOKEN=${FLY_API_TOKEN}, Base64 blobs after an identifier that ends in a glue byte.

Scanner rules for this family

Mapped by hand (reviewed 2026-09-30) from each scanner's pinned rule file, never from what a scanner found on the fixtures.

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

0 of 0 rows

No fixtures in this family yet

Nothing in the corpus targets it, so nothing is measured and no coverage is claimed.

Not measured

Sources

Researched 2026-09-30.

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