·
Last changedVersion:
This version passed the hardening gate. Hardening applied 1 targeted change and preserved all other text. Classified findings before hardening: 1. Classified findings closed: 0. Classified findings remaining: 1. Unclassified scanner findings remaining: 0. Review findings closed: 3. Review findings remaining: 10.
1
1
Expand | File | Group | Subtype | Severity | Status |
|---|---|---|---|---|---|
SKILL.md | Prompt Injection | Direct prompt injection | Medium | Open |
1 finding
Every endpoint run emits one execution log entry to PostHog's log_entries store. This skill
reads those entries for a specific endpoint to answer "what happened when it ran?". It is the
log-level counterpart to diagnosing-endpoint-performance (which reasons about cache/materialisation
strategy from config and query_log).
If the question is "this endpoint is slow, what should I change?", use
diagnosing-endpoint-performance. If it's project-wide ("what can I clean up?"), use
auditing-endpoints.
Each run produces exactly one entry. The level is INFO on success and ERROR on failure, and the
message carries the extra data as searchable key=value tokens:
Token meanings:
| Token | Values | Meaning |
|---|---|---|
|
| Which execution path ran |
|
| Whether the query result cache was used (omitted for ducklake) |
| integer | Wall-clock execution time |
| integer | Number of result rows returned |
| integer | Which endpoint version ran |
| e.g. | Error class / HogQL code name (failures only) |
Each run gets a distinct instance_id, so logs group one-per-execution in the viewer.
| Tool | Purpose |
|---|---|
| Primary. Execution log entries for one endpoint by name. Filter by level, search, time range, instance_id; |
| Endpoint config for context (current version, materialisation, query kind) |
| Fallback / aggregation directly against |
endpoint-logs exposes the standard log filters:
ERROR to see only failed runs, or INFO,ERROR for all.key=value tokens, you can search cache=miss, path=inline, error=ResolutionError, or a
specific version=3.Identify the endpoint by name. If given a URL, parse it from
/api/projects/{team_id}/endpoints/{name}/run.
Start broad: endpoint-logs for the endpoint with a recent time range. Skim levels and tokens.
Narrow to the symptom:
level=ERROR; read the error= token and path= to see where it broke.search=cache=miss to see how often runs miss cache.rows= across runs, and version= to spot a regression after a
version bump.For counts/trends across many runs (e.g. error rate over a week), drop to execute-sql against
log_entries:
Get the endpoint UUID from endpoint-get (the log_source_id is the endpoint id, not its name).
Summarize: what's failing, since when, on which version/path, and whether it's a config issue
(hand off to diagnosing-endpoint-performance) or a query bug.
log_source_id is the endpoint UUID, not the name. For execute-sql, fetch it via
endpoint-get first.log_entries TTL). Older runs won't appear.endpoint-logs tells you what happened and why a run
failed; for "should I materialise / bump cache TTL?" use diagnosing-endpoint-performance, which
reasons over config and query_log cost metrics.Get started with chainctlchainctl skill install public/posthog/exploring-endpoint-execution-logs:latest
Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.
skills.cgr.dev/public/github.com/posthog/skills/omnibus/exploring-endpoint-execution-logs:latest
MIT
HARDENING.md
LICENSE
SKILL.md