mix aurora_meter.features (Aurora Meter v1.0.0)

View Source

Shows what flipping :undeclared_feature_policy to :deny would change.

mix aurora_meter.features
mix aurora_meter.features --strict          # exit 1 on an undeclared reference or a plan gap
mix aurora_meter.features --plans MyApp.Plans

Four sections:

  1. Declared features per plan, with the kind of each.
  2. Features referenced by configuration: :durable_features, :feature_sources (skipped while the key is absent), and, when an :aurora_meter_pro application environment is present, its :stripe_meters. Pro's environment is read by application name, so this task names no Pro module and core gains no dependency on Pro.
  3. Undeclared references: something the configuration names that no plan declares. Almost always a typo.
  4. Plan gaps: a feature some plans declare and others do not, with the plans that would deny it under :deny. This is the section to read before the flip, because a gap is exactly what changes behaviour: a tenant on a plan in the "would deny" column is answered permissively today and refused afterwards.

What it cannot see

It reads configuration, not source. A feature named only in a call at runtime (AuroraMeter.check(org, :something)) is invisible here. The runtime answer to that is the declared: metadata on [:aurora_meter, :track] telemetry and the one-per-feature log the :warn policy emits; run with :warn for a while before moving to :deny.