Skip to content

docs: document custom CEL functions - #1013

Merged
kristin-kronstain-brown merged 4 commits into
agentgateway:mainfrom
danehans:docs-custom-cel-functions
Sep 3, 2026
Merged

docs: document custom CEL functions#1013
kristin-kronstain-brown merged 4 commits into
agentgateway:mainfrom
danehans:docs-custom-cel-functions

Conversation

@danehans

@danehans danehans commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Document config.customFunctions syntax and lifecycle.
  • Cover global, receiver, variadic, and nested function forms.
  • Add cross-links from CEL and static configuration pages.

Testing

  • PATH=/opt/homebrew/bin:$PATH hugo160 --gc --minify.
  • Targeted custom-function doc-test generation.
  • agentgateway validate-only checks with agentgateway 1.5.0.

danehans and others added 4 commits September 2, 2026 11:40
Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
Registration checks the definitions themselves: names, parameters, and
the call graph. It does not check that a call site can supply the
variables a function reads. A function that reads `response` passes
`--validate-only`, starts cleanly, and then returns 403 for every
request that reaches an authorization policy calling it, with nothing in
the startup logs. Give that its own section with a reproduction, and
scope the constraints table to what registration actually enforces.

Also:

* Add the `config:` parent to the four function-form snippets. Without
  it agentgateway rejects them with `unknown field customFunctions`.
* Note that a receiver registers under its bare name, so `example()` and
  `this.example()` collide.
* Say the identifier character set is ASCII.
* Scope the `between(llm.inputTokens, ...)` example to AI and LLM
  routes, where the `llm` variables are bound.
* Use the gloss shortcode for CEL, and unwrap the prose to match the
  other pages under assets/agw-docs/pages/.

Revert the observability alias changes that main already fixed in
302f2fe, which scoped each alias to its version tree and dropped the
bare `/observability/tracing` that collided at the site root. Keep the
otel-stack tabs fix and the main-tree access-logging alias, which main
does not have.

Verified against agentgateway 1.5.0: every YAML example on the page
passes --validate-only, and the 403 reproduction is from a running
gateway.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Kristin Brown <kristin.brown@solo.io>
@kristin-kronstain-brown
kristin-kronstain-brown merged commit a2df864 into agentgateway:main Sep 3, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants