← Back to issue list

export-login --expires silently ignores dates given in ISO 8601 format

View original Launchpad issue

Metadata

Project
snapcraft (launchpad)
Number
#1928756
Type
issue
State
open
Author
~bjornt
Labels
craft-215
Created
Updated
Closed

Current evaluation

export-login --expires silently drops date-only ISO 8601 strings (e.g. 2022-01-01), producing a macaroon with expires: None. Requires full datetime to work. 5+ years old, zero comments, labelled craft-215, no maintainer response.

Suggested action: needs triage

Reason: The issue is 5+ years old with zero comments and no maintainer interaction, but the export-login command still exists in the current codebase (snapcraft/commands/) and the bug may still be present. The craft-215 label suggests project-board categorisation but not a substantive triage assessment. A maintainer needs to verify whether the date-parsing bug still reproduces in the current code before deciding to fix or close. Related issue #4226 (export-login ignores expires parameter) was closed as stale with a note that expiry is store-side behaviour, but that is a distinct concern from silent date-format rejection.

Impact: 35 Quick Win: 26.25 Staleness: 85 Complexity: 25 Confidence: 45 Support Request: 10

Issue body

If you pass the data in ISO 8601 format to export-login --expires: snapcraft export-login --expires 2022-01-01 --snaps maas --acls package_release macaroon You get a macaroon with expiry of None: Login successfully exported to 'macroon'. This can now be used with snapcraft login --with macaroon to log in to this account with no password and have these capabilities: snaps: ['maas'] channels: No restriction permissions: ['package_release'] expires: None If I pass the date, including the time, it works. But the documentation for export-login says that a date should be enough.

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.8-27b
Impact: 35
Quick Win: 26.25
Staleness: 85
Complexity: 25
Confidence: 45
Support Request: 10
needs triage export-login --expires silently drops date-only ISO 8601 strings (e.g. 2022-01-01), producing a macaroon with expires: None. Requires full datetime to work. 5+ years old, zero comments, labelled craft-215, no maintainer response.
qwen/qwen3.6-35b-a3b
Staleness: 95
Complexity: 20
Confidence: 85
Support Request: 5
close stale snapcraft export-login --expires silently sets expiry to None when given a date-only ISO 8601 string, despite documentation stating it should work. Issue has been inactive for over five years with no maintainer response.
qwen/qwen3.6-35b-a3b
Staleness: 95
Complexity: 20
Confidence: 90
Support Request: 5
close stale snapcraft export-login --expires silently sets expiry to None when given ISO 8601 dates without time. Untriaged, inactive for over 5 years, and likely superseded by newer project versions.
qwen3.6-35b-a3b-mtp-q6
Staleness: 95
Complexity: 20
Confidence: 60
Support Request: 5
needs triage CLI export-login --expires silently defaults to None when given date-only ISO 8601 strings, despite documentation stating dates should suffice. Issue has zero maintainer engagement after over five years.
qwen3.6-35b-a3b-mtp-q6
Staleness: 95
Complexity: 20
Confidence: 80
Support Request: 5
close stale snapcraft export-login --expires silently ignores ISO 8601 date-only inputs, defaulting expiry to None. Works only with full datetime. Remains open, unassigned, and inactive for over five years. Needs triage and a fix to align with docs.

Update history

No update history recorded yet.

Related work

  • Related To: canonical/snapcraft#4226 (confidence 55%)

    Also about export-login --expires being silently ignored, but that issue concerns the store-side expiry behaviour rather than date-format parsing. Closed as stale without code changes.

Related issues

Issue Project State Summary Similarity
#1831 cli: add expiration option to export-login snapcraft merged Merged. Adds --expires to snapcraft export-login, enforcing strict ISO 8601 datetime formats. Removes dateutil dependency, refactors store error handling to surface validation failures, and adds a manual expiration test.
71%