{"audit":{"version":"1.3","generated_at":"2026-05-23T00:34:04.784614+00:00","generated_by":"Agenstry","report_url":"https://agenstry.com/agents/geonicdb.geolonia.com","methodology_url":"https://agenstry.com/methodology","verifier_jwks_url":"https://agenstry.com/.well-known/jwks.json","subject":{"domain":"geonicdb.geolonia.com","name":"GeonicDB","url":"https://geonicdb.geolonia.com/.well-known/agent-card.json"}},"identity":{"provider":{"organization":"Geolonia Inc.","url":"https://github.com/geolonia/geonicdb"},"registry_verification":null,"signature":{"signed":false,"signature_valid":null}},"protocol":{"version":"0.2.2","supports_streaming":false,"supports_push_notifications":false},"operational":{"live_state":"auth_required","live_responds":false,"last_status_code":200,"last_elapsed_ms":692,"last_error":null},"track_record":{"first_seen":"2026-05-18T15:35:53.148193+00:00","last_checked":"2026-05-22T13:28:22.981344+00:00","last_seen_ok":"2026-05-22T13:28:22.981344+00:00","checks_total":5,"checks_ok":5,"uptime_pct":100.0,"archived":false,"archived_reason":null},"conformance":{"score":63,"grade":"C","summary":"C-grade: usable but has clear conformance issues — review the breakdown below.","criteria":[{"key":"valid_card","label":"Valid AgentCard","points":10,"max_points":10,"status":"pass","detail":"Schema-validated A2A AgentCard returned by the well-known endpoint."},{"key":"live_responds","label":"Live JSON-RPC","points":15,"max_points":25,"status":"partial","detail":"Endpoint requires auth — real agent but not anonymously callable."},{"key":"protocol_version","label":"Protocol version","points":2,"max_points":10,"status":"partial","detail":"Declares unrecognised version '0.2.2'."},{"key":"signature","label":"JWS signature","points":0,"max_points":10,"status":"info","detail":"Card is unsigned (most published agents are)."},{"key":"uptime","label":"Uptime track record","points":15,"max_points":15,"status":"pass","detail":"5/5 probes succeeded (100% uptime)."},{"key":"skills","label":"Skill declaration","points":10,"max_points":10,"status":"pass","detail":"Declares 5 skills with structured metadata."},{"key":"verified_identity","label":"Verified Identity","points":5,"max_points":10,"status":"partial","detail":"Provider declared: Geolonia Inc. (https://github.com/geolonia/geonicdb). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit."},{"key":"freshness","label":"Freshness + modern flags","points":4,"max_points":5,"status":"pass","detail":"seen in upstream source within 0d"},{"key":"security","label":"Security declaration","points":2,"max_points":5,"status":"partial","detail":"Declares 4 security scheme(s) but none use PKCE or mTLS."}]},"skills":[{"id":"entities","name":"Entity Management","description":"CRUD operations on IoT entities, entity types, and attributes. Supports list, get, create, update, delete, and geo-spatial/attribute search.","tags":["iot","entities","ngsi-ld","geospatial"],"examples":["List all entities of type Sensor","Get entity urn:ngsi-ld:Sensor:001","Create a new Temperature sensor entity","Search entities near latitude 35.68, longitude 139.76"],"inputModes":[],"outputModes":[]},{"id":"batch","name":"Batch Operations","description":"Bulk create, upsert, update, merge, delete, and query operations on multiple entities at once.","tags":["batch","bulk","entities"],"examples":["Create 10 sensor entities in batch","Delete all entities of type OldSensor"],"inputModes":[],"outputModes":[]},{"id":"temporal","name":"Temporal Data","description":"Time-series data management for entity attributes. Query historical values, create temporal entities, manage attribute instances.","tags":["temporal","timeseries","history"],"examples":["Query temperature history for the last 24 hours","Get temporal data for entity urn:ngsi-ld:WeatherStation:001"],"inputModes":[],"outputModes":[]},{"id":"config","name":"Configuration","description":"Manage reactive rules, JSON-LD contexts, and Smart Data Models.","tags":["config","rules","jsonld","data-models"],"examples":["List all reactive rules","Get available JSON-LD contexts"],"inputModes":[],"outputModes":[]},{"id":"admin","name":"Administration","description":"User, tenant, and XACML policy management. Requires tenant_admin or super_admin role.","tags":["admin","users","tenants","policies"],"examples":["List all users in the current tenant","Get tenant information"],"inputModes":[],"outputModes":[]}],"provenance":[{"source":"github_code","first_seen":"2026-05-18T15:35:53.148193+00:00"},{"source":"manifests","first_seen":"2026-05-19T18:57:14.552879+00:00"},{"source":"recrawl_hot","first_seen":"2026-05-21T03:43:42.744762+00:00"}],"recent_probes":[{"fetched_at":"2026-05-22T13:28:22.981344+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":692,"live_responds":false},{"fetched_at":"2026-05-21T03:43:42.744762+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":318,"live_responds":false},{"fetched_at":"2026-05-19T18:57:14.552879+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":402,"live_responds":false},{"fetched_at":"2026-05-19T00:50:18.269431+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":396,"live_responds":false},{"fetched_at":"2026-05-18T15:35:53.148193+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":405,"live_responds":false}],"catalog_attestation":null,"verification_history":[],"signatures":[{"protected":"eyJhbGciOiJFUzI1NiIsImprdSI6Imh0dHBzOi8vYWdlbnN0cnkuY29tLy53ZWxsLWtub3duL2p3a3MuanNvbiIsImtpZCI6ImFnZW50ZmluZGVyLWVzMjU2LTEiLCJ0eXAiOiJKT1NFIn0","signature":"uq3sz0Gv_9dEQC4THJUjHjlmqU2rFqTBm6LW6HTcwfpiDhh6qwiUqp8p5G2_nOiZ6GgNsefXtdhkbSJ-ZGCdHg"}]}