NAME

Langertha::Skeid::OpenAPI - OpenAPI 3.1 description built from the proxy's route table

VERSION

version 0.004

SYNOPSIS

my $doc = Langertha::Skeid::OpenAPI->document(
  entries     => \@enabled_route_table_entries,
  kind        => 'client',          # or 'admin'
  models      => ['qwen3-32b'],     # what GET /v1/models lists for this caller
  client_auth => 1,
  version     => $Langertha::Skeid::Proxy::VERSION,
);

DESCRIPTION

Turns entries of "route_table" in Langertha::Skeid::Proxy into an OpenAPI 3.1 document. Which entries are in the document -- the enabled ones -- is the proxy's decision; this module only describes what it is given, so the document cannot name a route the app does not register (the route table is also what registers them).

Nothing in a document comes from a request body, a key or the config's secrets: it holds paths, fixed descriptions and one model name per example, from the same list GET /v1/models answers.

path_template

Langertha::Skeid::OpenAPI->path_template('/mcp/#mcp_server/*mcp_path');
# '/mcp/{mcp_server}/{mcp_path}'

A Mojolicious route pattern as an OpenAPI path template.

path_params

The placeholder names of a route pattern, in order.

document

The document, as a hashref ready for encode_json. Arguments: entries (route table entries, already filtered), kind (client or admin), models, client_auth (true when the config requires a key on the client routes), version.

SUPPORT

Issues

Please report bugs and feature requests on GitHub at https://github.com/Getty/langertha-skeid/issues.

IRC

Join #langertha on irc.perl.org or message Getty directly.

CONTRIBUTING

Contributions are welcome! Please fork the repository and submit a pull request.

AUTHOR

Torsten Raudssus <torsten@raudssus.de> https://raudssus.de/

COPYRIGHT AND LICENSE

This software is copyright (c) 2026 by Torsten Raudssus.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.