Inspiration
Connect reaches end of support on 31 Jan 2027, and most OpenAPI/Swagger macros in Confluence are Connect apps. Teams face broken API pages, and even working docs make developers scroll a 3,000-line spec to find one request body.
What it does
- Renders interactive OpenAPI 3 and Swagger 2 docs from a GitHub link (and auto-converts pasted links), a page attachment or a pasted spec.
- A space-settings importer that finds legacy Swagger/OpenAPI macros and rewrites them as SpecPort macros, keeping the spec.
- SpecPort API Guide, a Rovo agent that answers "how do I call X?" with a ready-to-run curl request, explains auth and errors, and reviews a spec for gaps. Everything is grounded in the spec on the page.
- PDF/Word export as an endpoint table.
How we built it
Forge (Node 22) with a Custom UI macro (Swagger UI), a config modal and a confluence:spaceSettings importer. Forge KVS caches GitHub fetches, and egress is only raw.githubusercontent.com. The Rovo agent uses two GET actions (list-api-endpoints, get-api-endpoint-detail) that read the page's ADF as the user, load each spec, resolve $refs and return compact JSON so the agent stays accurate. Licensing goes through Forge Paid via Atlassian.
Challenges
Mapping unknown legacy macro parameters (URL, attachment or inline body) into one config. Keeping LLM context small for large specs (trimmed schemas, an endpoint cap, keyword filtering). Tolerating paths the model writes like /pets/:id.
Accomplishments
A full migration path off Connect, a Rovo agent with no hallucinated endpoints, and submission to the Marketplace (review ticket ECOHELP-183917).
What's next
Private GitHub, GitLab and Bitbucket via OAuth, spec diffs between page versions, and AsyncAPI.
How it meets the technology requirement
A Forge app (manifest with macro, confluence:spaceSettings, rovo:agent, action and function modules) integrating Confluence and Rovo. Updated on Forge after 27 Oct 2026 (Rovo agent added and deployed to production 12 Nov 2026).
Testing instructions for judges
- Open the installation link and install on a Confluence site with Rovo enabled.
- On any page, type /OpenAPI and paste https://github.com/swagger-api/swagger-petstore/blob/master/src/main/resources/openapi.yaml (or any public spec link), then publish.
- Click Chat, choose SpecPort API Guide and ask "How do I add a new pet?".
- Optional: add a legacy Swagger macro, then go to Space settings, open Migrate API docs to SpecPort, Scan, and Convert.
No configuration or external accounts are needed.
Built With
- confluence
- forge
- javascript
- node.js
- openapi
- react
- rovo
- swagger