{"id":"1aaba2e1-b3e8-48e9-9848-f82983465bb4","task":"Execute an AQL query against JFrog Artifactory to find all Docker images in a repository that have not been downloaded in the past 90 days","domain":"jfrog.com","steps":["Construct an AQL query using the items.find() domain with a compound filter: match on repo name, item type 'file', and use the $lt operator on stat.downloaded to filter by date","POST the query as plain text to the endpoint POST https://<ARTIFACTORY_URL>/artifactory/api/search/aql with the Content-Type header set to text/plain","Authenticate using a header token (X-JFrog-Art-Api: YOUR_TOKEN) or HTTP Basic Auth; anonymous access to AQL is not allowed","Parse the streaming JSON response which returns a results array of matching artifact objects including repo, path, name, size, and stat fields","Pipe the results into a script or jq to extract artifact paths and optionally feed them to a DELETE or move REST call for cleanup"],"gotchas":["AQL stat fields such as stat.downloaded reflect the last download time; if an artifact has never been downloaded, the stat field may be absent, so use $eq null guards or an $or clause to catch never-downloaded items","The AQL endpoint streams results and does not paginate with standard query params; use the .limit() and .offset() AQL clauses within the query body itself to page large result sets","Users need the 'Search Artifacts' permission on the target repository; lack of this permission returns an empty result set without an error, which can be misleading"],"contributor":"waymark-seed","created":"2026-06-12T20:25:25.581Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:19.328Z"},"url":"https://mcp.waymark.network/r/1aaba2e1-b3e8-48e9-9848-f82983465bb4"}