Skip to content

Releases: infobloxopen/apx

apx-v0.11.1

08 Apr 21:27
425bb08

Choose a tag to compare

Changelog

  • 38788e5 Fix release submit path resolution, PR response parsing, and catalog search

Edge (latest main)

08 Mar 07:38

Choose a tag to compare

Edge (latest main) Pre-release
Pre-release

Rolling release built from the latest main branch commit.

Commit: d381c8d
Date: 2026-04-08T18:26:51-05:00

⚠️ This is an unstable pre-release. For production use, pin
to a versioned release like v1.0.0.

apx-v0.11.0

13 Mar 05:49

Choose a tag to compare

Changelog

  • 3e54568 Add OpenAPI body types, raw source viewer, and fix schema stutter
  • 9683e8f Add directory-like navigation with fixed breadcrumb bar
  • c97f84c Fix Windows CI test failures
  • 88df868 Fix sidebar grouping: source files get their own "Source" accordion
  • 45ac938 Redesign catalog site: per-API sidebar, struct rendering, anchor navigation
  • 73193b5 Replace gh CLI with native GitHub OAuth device flow
  • 60666d3 Restructure CLI: consolidate commands and add colorized help
  • 1049600 add api docs site generation

apx-v0.11.0-beta.1

13 Mar 05:50

Choose a tag to compare

apx-v0.11.0-beta.1 Pre-release
Pre-release

Changelog

  • 3e54568 Add OpenAPI body types, raw source viewer, and fix schema stutter
  • 9683e8f Add directory-like navigation with fixed breadcrumb bar
  • c97f84c Fix Windows CI test failures
  • 88df868 Fix sidebar grouping: source files get their own "Source" accordion
  • 45ac938 Redesign catalog site: per-API sidebar, struct rendering, anchor navigation
  • 73193b5 Replace gh CLI with native GitHub OAuth device flow
  • 60666d3 Restructure CLI: consolidate commands and add colorized help
  • 1049600 add api docs site generation

apx-v0.10.0-beta.1

10 Mar 04:21

Choose a tag to compare

apx-v0.10.0-beta.1 Pre-release
Pre-release

Schema Content Extraction for Catalog Site

The catalog site detail panel now shows the actual structure of each API — not just metadata.

What's New

  • --dir flag on catalog site generate and catalog site serve enables schema extraction from source files
  • Proto: Services, RPCs (including streaming), messages, fields, enums, comments
  • OpenAPI: Paths with HTTP method badges, operations, parameters, responses, component schemas (supports 3.x and Swagger 2.0)
  • Avro: Records, fields with stringified types (unions, nested records), enums, doc strings
  • JSON Schema: Properties with types, required markers, nested objects (depth-capped)
  • Parquet: Columns with physical/logical types and repetition levels

Usage

apx catalog site generate --dir=.    # extract schemas from repo root
apx catalog site serve --dir=.       # local preview with schema content

When --dir is omitted, the site works exactly as before (metadata only). Schema extraction uses built-in pure-Go parsers — no external tools required.

Notes

  • This feature is marked as in-development; flags and output may change
  • New package internal/site/schema/ with 43 tests across all 5 format extractors

apx-v0.9.0-beta.3

09 Mar 23:04

Choose a tag to compare

apx-v0.9.0-beta.3 Pre-release
Pre-release

apx-v0.9.0-beta.2

09 Mar 06:11

Choose a tag to compare

apx-v0.9.0-beta.2 Pre-release
Pre-release

What's Changed

Features

  • 3-part API ID support: ParseAPIID and ParseLineFromID now accept format/name/line (e.g. proto/orders/v1) in addition to format/domain/name/line — APX-112
  • --dry-run on release prepare: documented but previously unimplemented; now shows identity report without writing a manifest
  • Native validators for Avro, JSON Schema, and Parquet: pure-Go implementations replace external tool dependencies — APX-116
  • import_root as first-class option: surfaced in docs and interactive init for vanity import paths — APX-114
  • Help command ordering: subcommands now display in logical workflow order instead of alphabetical

Breaking Changes

  • apx publish removed: consolidated entirely on apx release pipeline — APX-113
  • --module-path flag removed from release prepare: use positional <api-id> argument instead
  • release prepare now validates that the module path exists on disk before proceeding

Bug Fixes

  • Fix ParseLineFromID returning wrong line for 3-part API IDs (caused version-line mismatch errors)
  • Fix e2e_gitea_unreachable test: release prepare is local-only; network failure tested via release submit
  • Fix e2e_major_version_bump test: v2 line correctly extracted from 3-part API IDs
  • Fix ResolveAPIPath to try hardcoded fallbacks (internal/apis/, schemas/, api/) for 3-part API IDs

CI & Test Infrastructure

  • Eliminate ETXTBSY (text file busy) race on Linux: use absolute bin path in testscript and e2e tests instead of per-test binary copy
  • Build binary once in integration TestMain instead of redundantly per-test-function
  • Migrate 9 e2e scripts from removed --module-path flag to positional api-id
  • Fix workflows_sync test for apx-publish.ymlapx-release.yml rename
  • Fix publish_ledger testscript for new CLI surface

Documentation

  • Document GitHub/Gitea as 1.0 platform requirements; other registries are non-goals
  • Update validation docs to reflect native Go validators
  • Close docs/code convergence gap: catalog_url, import_root schema, update/upgrade ergonomics — APX-115
  • Clarify apx release finalize as CI-only in troubleshooting docs
  • Update CLAUDE.md to align with constitution.md principles

Full Changelog: v0.9.0-beta.1...v0.9.0-beta.2

apx-v0.9.0-beta.1

09 Mar 01:14

Choose a tag to compare

apx-v0.9.0-beta.1 Pre-release
Pre-release

Release v0.9.0-beta.1

Released: March 8, 2026
Tag: v0.9.0-beta.1
Previous release: v0.8.0-beta.1


What's new

Remote catalog support (APX-110)

apx search, apx show, and apx inspect now accept HTTP/HTTPS URLs anywhere a
catalog path was previously accepted, so teams no longer need a local clone of the
canonical repository just to browse the API catalog.

# flag
apx search --catalog https://raw.githubusercontent.com/acme/apis/main/catalog/catalog.yaml payments

# config (apx.yaml)
catalog_url: https://raw.githubusercontent.com/acme/apis/main/catalog/catalog.yaml

Resolution order for all three commands: --catalog flag → catalog_url in
apx.yaml → local catalog/catalog.yaml.

Tag filtering for search (APX-110)

A new --tag flag lets you filter search results by catalog tag, and free-text
queries now also match against tags:

apx search --tag=public
apx search --tag=core --lifecycle=stable
apx search flagship          # matches modules tagged "flagship"

Enriched inspect identity output (APX-110)

When a catalog is reachable, apx inspect identity now surfaces:

  • Latest stable and prerelease versions
  • Module owners
  • Catalog tags
$ apx inspect identity proto/payments/ledger/v1
API:        proto/payments/ledger/v1
...
Latest stable:      v1.2.3
Latest prerelease:  v1.3.0-beta.1
Owners:     @platform/payments
Tags:       public, core

Custom Go import root (APX-112)

A new optional import_root field in apx.yaml decouples the public Go module
prefix from the Git hosting path. Useful when generated SDKs are published to a
vanity domain or a separate registry (e.g. Buf Schema Registry):

# apx.yaml
org: acme
repo: apis
import_root: go.acme.dev/apis   # defaults to github.com/acme/apis when omitted

All commands that derive Go paths respect this field: apx inspect identity,
apx inspect release, apx explain go-path, apx show, apx publish, and
apx release. Omitting import_root is fully backward compatible.

Real policy engine (APX-105)

Policy validation is now enforced by a real rule engine rather than a stub. The
engine evaluates forbidden_proto_options, allowed_proto_plugins, and per-format
compatibility rules declared in apx.yaml.

Dependency update and upgrade commands (APX-107)

Two new commands manage pinned schema dependencies:

Command Effect
apx update Update a dependency to the latest patch/prerelease within its major line
apx upgrade Upgrade a dependency to a newer major line

Both commands update apx.yaml and apx.lock atomically.

Catalog generation is the sole build path (APX-106)

apx catalog build (the earlier stub command) has been removed.
apx catalog generate is now the single, canonical way to rebuild catalog/catalog.yaml.


Fixes

Lifecycle vocabulary unified (APX-104)

beta is now the canonical lifecycle label throughout the CLI, documentation, and
generated identity blocks. preview is accepted as an alias for backward
compatibility but is no longer emitted by any command. Using preview in
apx.yaml produces a deprecation hint.


Documentation

Item What changed
APX-101 Comprehensive docs/code parity sweep — all CLI flags are now covered
APX-102 Publishing docs rewritten around the PR-first release model
APX-103 Tag format unified to 5-segment (format/domain/name/line/version) across all docs and specs
APX-108 Package publication responsibility boundary clarified — app repos own apx publish, canonical repo owns apx release
APX-109 Format maturity matrix added to publishing overview
APX-111 apx publish vs apx release decision guide added

Upgrade notes

No breaking changes. All new config fields (import_root, catalog_url) are
optional and default to the previous behaviour when omitted.

If you were using apx catalog build, replace it with apx catalog generate.


Commits

Commit Description
4b0e92a APX-112: Decouple public import root from source repository
f69a1b8 APX-110: Improve discovery ergonomics
aa57844 APX-111: Rationalize publish vs release documentation
a360f37 APX-109: Publish format maturity matrix
cf086f5 APX-104: Unify lifecycle vocabulary
f1c1c22 APX-108: Clarify package publication responsibility boundary
03a5c56 APX-107: Implement dependency update and upgrade commands
a172133 APX-106: Remove catalog build stub
4eeb48c APX-105: Implement real policy engine
26897ba APX-103: Unify tag format to 5-segment
00ccb89 APX-102: Rewrite publishing docs
1c33fab APX-101: Comprehensive docs/code parity sweep

apx-v0.8.0-beta.1

08 Mar 20:17

Choose a tag to compare

apx-v0.8.0-beta.1 Pre-release
Pre-release

Changelog

  • cdca039 Phase 2: make versioning and lifecycle first-class - version analysis engine, lifecycle transitions, real semver suggest, tag listing, version-line validation, 50+ new tests
  • 2544c6d api_lifecycle_gap: add preview lifecycle, v0 support, compatibility promise
  • 5a789a5 checkpoint
  • 8917c17 constitution: add pre-stable development maturity policy
  • cfcec3f docs(quickstart): add identity model fields to apx.yaml example
  • f960f73 feat(008): implement external API registration as first-class feature
  • e1cf99b feat(config): implement canonical configuration schema (006)
  • 5ec0d6a feat(github): auto-install App on org after manifest creation
  • be7db33 feat(identity): implement canonical identity and versioning model
  • 1c974f0 feat(publish): implement PR-based publish via gh CLI
  • b3843a3 feat(release): implement publish_gap phases 3 & 4
  • d518939 feat: GitHub bootstrap for canonical and app repos
  • 4028026 feat: add apx workflows sync command
  • 1573e51 feat: add composite GitHub Action for APX installation
  • fd87595 feat: add edge release workflow for continuous binary publishing
  • def6a73 feat: add go_package validation and go.mod generation during publish
  • ba96ffb feat: auto-create GitHub App via manifest flow
  • cb61123 feat: auto-detect org/repo from git remote, default canonical repo to 'apis'
  • 3e2c704 feat: detect fork upstream remote for canonical org resolution
  • 28b1819 feat: generate apx.yaml in canonical scaffolder, fallback in workflows sync
  • faf97fe feat: implement PR-first canonical release submission
  • 02322f9 feat: implement identity model phases 1-3
  • f1967c2 feat: implement release state machine, manifest, and lifecycle validation
  • f1f8153 feat: preflight scope check before GitHub setup
  • 66dcdc2 feat: resolve API IDs in lint and breaking commands
  • 2bf9b6c fix usused variable ref
  • 386d7bc fix(e2e): add missing --repo flag to init app commands in e2e test scripts
  • cc5526a fix(lint,breaking): succeed gracefully when no schema files exist
  • 6af2cc8 fix: add url to hook_attributes in app manifest
  • b64e8ab fix: base64-encode manifest to avoid all HTML escaping issues
  • 75af585 fix: directory-aware schema format detection for lint, breaking, semver
  • d666205 fix: paginate org installations check in checkAppInstalled
  • 15655d4 fix: remove duplicate test-integration target in Makefile
  • e50c517 fix: remove unused format initializer in breaking.go
  • 195bde8 fix: remove unused format initializer in lint.go
  • 8aababa fix: remove unused format initializer in semver.go
  • f1d1e26 fix: resolve test failures for publish flag and lifecycle inference
  • 90ca051 fix: skip file permission assertions on Windows in setup tests
  • 894a752 fix: tag protection idempotency check and Name-must-be-unique fallback
  • 62117fe fix: tag protection ruleset payload and graceful 422 handling
  • 0d478c5 fix: use atomic rename in testscript binary copy to avoid ETXTBSY
  • a060888 fix: use html/template for manifest form escaping
  • 917a25c fix: use textarea for manifest form to avoid HTML escaping
  • 692b2da plan: docs-cli consistency implementation plan
  • 916e122 refactor: remove apis-go, single canonical import root
  • 2620506 refactor: unify lifecycle terminology, fix doc/code parity, remove subtree publisher
  • 4335b06 remove unneedeed files
  • 223c46d spec: docs-cli consistency — ensure docs match implementation
  • 0f9b072 tasks: generate task list for docs-cli consistency (31 tasks)

apx-v0.1.0-alpha.1

07 Mar 21:28

Choose a tag to compare

apx-v0.1.0-alpha.1 Pre-release
Pre-release

Changelog

  • 34bd085 build: upgrade Go to 1.26.1 for CLI/CI/Docker (leave API packaging at 1.24)
  • 7021caf ci(e2e): cache k3d, kubectl, buf binaries across runs
  • 4ef7ee2 feat(004): package installer support
  • 798842b feat(e2e): Phase 1 - E2E test suite infrastructure setup
  • f12f65d feat: migrate CLI framework from urfave/cli to cobra + huh
  • 74150af fix(ci): use qemu backend for colima on macOS runners
  • 61792bc fix(ci): use vz locally, qemu on GitHub Actions
  • b0e5855 fix(e2e): kubectl version detection for v1.32+
  • 9471051 fix(e2e): skip TestE2E when k3d/Docker unavailable, fix Fatalf arg order
  • b5a8c00 fix(release): exclude validator tests from GoReleaser before hook
  • b43e7eb fix(release): use separate Dockerfile for GoReleaser builds
  • d57ddc3 fix: Windows integration test compatibility
  • b044f4a fix: Windows path separator and buf tool availability
  • cfaee5b fix: change CI cache key to use go.mod instead of go.sum
  • fe35725 fix: correct test expectations for catalog/ and apx.yaml paths
  • c0cdb4c fix: ensure all path operations are OS-independent
  • 92635cd fix: install validator toolchains in CI and improve test reliability
  • 4e2702e fix: normalize overlay ModulePath to forward slashes on Windows
  • d629b68 fix: prevent 'text file busy' error in parallel testscripts
  • 8e47021 fix: skip Windows integration tests with known issues
  • 5150ecd fix: update e2e breaking detection test for cobra error format
  • d9e94e0 fix: update integration tests for cobra CLI output format
  • 9c172e1 fix: update oasdiff to latest version v1.11.7
  • 45a070e fix: update validator tests to expect errors when tools not installed
  • 70eb988 fix: use built-in Go cache in setup-go action
  • 163e5e5 fix: use go install for oasdiff to avoid archive format issues
  • 1859eaf fix: use homebrew_casks with pre-generated completion scripts
  • df1f60e implement specs/001-align-docs-experience
  • 26805ce inital commit
  • 97db86c remove command/runner enforement
  • a204498 upgrade plan template