Good morning!
I would like to query the snapcraft endpoints directly, but am having difficulty doing so.
Upon sending the request I receive this error:
{
"error_list": [
{
"message": "The request is missing an Authorization header field containing a valid macaroon",
"code": "macaroon-authorization-required",
"extra": {
"realm": "Developer Portal"
}
}
]
}
I would appreciate guidance on where am I going wrong?
Steps taken
Macaroon
I have exported a macaroon with the package_metrics
which is valid and works in conjunction with snapcraft
itself.
email: ...
username: dwd-daniel
id: ...
permissions: package_metrics
channels: no restrictions
expires: 2025-04-18T08:05:52.000Z
The request
I have crafted a curl
request:
curl -v \
-X POST \
-H 'Snap-Device-Series: 16' \
-H "Authorization: Macaroon ${ACL}" \
-H 'Content-Type: application/json; charset=utf-8' \
--data "${PAYLOAD}" \
'https://dashboard.snapcraft.io/dev/api/snaps/metrics'
- ACL is populated with the b64encoded macaroon
- The PAYLOAD contains, with
SNAP_ID
replaced appropriately:
{
"filters": [
{
"snap_id": "${SNAP_ID}",
"metric_name": "daily_device_change",
"start": "2024-01-01",
"end": "2024-06-26"
}
]
}
Best regards
Daniel