← The board

A3 Credential validation

Area
A — Getting started
Audience
operator
Kind
feature
Status
accepted
Maturity
shipped
Shipped in
0.13.0
Labels
security, verification
Requires
G4
Relates to
A1A7C2C8

The feature in the specification · Read at

Requirements

  1. A3-R1acceptedMAY

    No credential MAY be persisted before a validation attempt has completed.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor/credentials.rscrates/lemonfiber-core/src/servarr.rscrates/lemonfiber-ports/src/http.rscrates/lemonfiber-adapters/src/http.rscrates/lemonfiber-core/src/validate.rscrates/lemonfiber-ports/src/nntp.rs
    cited by
    lemonfiber@9677c8b495
  2. A3-R2acceptedMUST

    Validation MUST test against the live service, not merely check format.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor/credentials.rscrates/lemonfiber-core/src/servarr.rscrates/lemonfiber-ports/src/http.rscrates/lemonfiber-adapters/src/http.rscrates/lemonfiber-core/src/validate.rscrates/lemonfiber-ports/src/nntp.rs
    cited by
    lemonfiber@370a2de8c2lemonfiber@de5b6b6c54lemonfiber@d7d00212belemonfiber@9677c8b495lemonfiber@361dc9d1eflemonfiber@771efea3c7
  3. A3-R3acceptedMUST

    Validation results MUST report an observed capability, not only pass/fail.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor/credentials.rscrates/lemonfiber-core/src/servarr.rscrates/lemonfiber-ports/src/http.rscrates/lemonfiber-adapters/src/http.rscrates/lemonfiber-core/src/validate.rscrates/lemonfiber-ports/src/nntp.rs
    cited by
    lemonfiber@370a2de8c2lemonfiber@de5b6b6c54lemonfiber@d7d00212belemonfiber@9677c8b495lemonfiber@361dc9d1eflemonfiber@990e67673flemonfiber@771efea3c7
  4. A3-R4acceptedMUST

    rejected, unreachable, and degraded MUST be distinguished, each with its own remedy.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor/credentials.rscrates/lemonfiber-core/src/servarr.rscrates/lemonfiber-ports/src/http.rscrates/lemonfiber-adapters/src/http.rscrates/lemonfiber-core/src/validate.rscrates/lemonfiber-ports/src/nntp.rs
    cited by
    lemonfiber@370a2de8c2lemonfiber@de5b6b6c54lemonfiber@d7d00212belemonfiber@9677c8b495lemonfiber@361dc9d1eflemonfiber@771efea3c7lemonfiber@e43bf9033alemonfiber@a7e76809aa
  5. A3-R5acceptedMUST

    Leading and trailing whitespace MUST be trimmed from pasted credentials without error.

    locked by
    0.13.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/validate.rscrates/lemonfiber-core/src/app/setup/proving.rs
    cited by
    lemonfiber@6c7596510flemonfiber@48816dcbb9
  6. A3-R6acceptedMUST

    Credentials MUST NOT appear in any log, error message, screen output, or support bundle.

    locked by
    0.13.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/validate.rs
    cited by
    lemonfiber@48816dcbb9
  7. A3-R7acceptedMUST

    Validation MUST time out within a bounded period and report the elapsed time.

    locked by
    0.13.0 met
    recorded done
    lemonfibercrates/lemonfiber-adapters/src/http.rscrates/lemonfiber-core/src/validate/reading.rs
    cited by
    lemonfiber@48816dcbb9
  8. A3-R8acceptedMUST

    Where the provider supports port forwarding, VPN validation MUST verify a port was granted, and on failure MUST name that provider's known trap first.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app.rscrates/lemonfiber-core/src/config.rscrates/lemonfiber-core/src/doctor/vpn.rscrates/lemonfiber/src/main.rs
    cited by
    lemonfiber@4a0ef93f5a
  9. A3-R9acceptedMUST

    VPN validation MUST report the observed exit country.

    locked by
    0.13.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor/vpn/probe.rscrates/lemonfiber-core/src/doctor/vpn/leak.rs
    cited by
    lemonfiber@48816dcbb9
  10. A3-R10acceptedMUST

    Validation MUST be re-runnable on demand and MUST participate in C1 diagnostics.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor/credentials.rscrates/lemonfiber-core/src/servarr.rscrates/lemonfiber-ports/src/http.rscrates/lemonfiber-adapters/src/http.rscrates/lemonfiber-core/src/validate.rscrates/lemonfiber-ports/src/nntp.rs
    cited by
    lemonfiber@6eaf665fc0lemonfiber@771efea3c7
  11. A3-R11acceptedMUST

    Total loss of network connectivity MUST be reported once, not once per credential.

    locked by
    0.13.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/validate.rs
    cited by
    lemonfiber@6c7596510flemonfiber@48816dcbb9
  12. A3-R12acceptedMUST

    TLS verification MUST NOT be skipped without explicit per-host opt-in.

    locked by
    0.13.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/validate/reading.rs
    cited by
    lemonfiber@6c7596510flemonfiber@48816dcbb9
  13. A3-R13acceptedMUST

    Proceeding with an unvalidated credential MUST be possible, MUST require confirmation, and MUST be recorded.

    locked by
    0.13.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/setup/proving.rs
    cited by
    lemonfiber@48816dcbb9
  14. A3-R14acceptedMUST

    Port-forwarding validation MUST be skipped for providers that do not support it, and its absence MUST NOT be reported as a validation failure.

    locked by
    0.13.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor/vpn/port_forward.rscrates/lemonfiber-core/tests/integration/vpn_port_forward.rs
  15. A3-R15acceptedMUST

    Where lemonfiber has no provider-specific knowledge, validation MUST report the generic failure and MUST NOT speculate about the cause.

    locked by
    0.13.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor/vpn/port_forward.rscrates/lemonfiber-core/tests/integration/vpn_port_forward.rs