Skip to content
This repository was archived by the owner on Sep 3, 2026. It is now read-only.

Releases

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 06 Aug 23:51
5166d40

What's Changed

  • feat(dbaas): managed database service on a dedicated operator cluster by @hiento09 in #127

Full Changelog: v0.4.0...v0.4.1

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 02 Aug 15:22
a338ca1

What's Changed

  • chore(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.105.2 to 1.106.0 by @dependabot[bot] in #109
  • chore(deps): bump github.com/rabbitmq/amqp091-go from 1.12.0 to 1.13.0 by @dependabot[bot] in #110
  • chore(deps-dev): bump oxlint from 1.75.0 to 1.76.0 in /web/admin by @dependabot[bot] in #99
  • chore(deps-dev): bump vite from 8.1.4 to 8.1.5 in /web/client by @dependabot[bot] in #101
  • chore(deps): bump @fontsource-variable/space-grotesk from 5.2.10 to 5.3.0 in /web/admin by @dependabot[bot] in #103
  • chore(deps-dev): bump oxlint from 1.73.0 to 1.76.0 in /web/client by @dependabot[bot] in #104
  • chore(deps): bump lucide-react from 1.24.0 to 1.27.0 in /web/admin by @dependabot[bot] in #105
  • chore(deps): bump recharts from 3.9.2 to 3.10.1 in /web/client by @dependabot[bot] in #107
  • chore(deps-dev): bump @types/node from 26.1.1 to 26.1.2 in /web/client by @dependabot[bot] in #108
  • chore(deps): bump @hono/node-server from 1.19.14 to 2.0.12 in /web/client in the npm_and_yarn group across 1 directory by @dependabot[bot] in #114
  • chore(deps): bump @hono/node-server from 1.19.14 to 2.0.12 in /web/admin in the npm_and_yarn group across 1 directory by @dependabot[bot] in #115
  • chore(deps): bump github.com/aws/aws-sdk-go-v2 from 1.42.1 to 1.43.0 by @dependabot[bot] in #111
  • chore(deps): bump radix-ui from 1.6.2 to 1.6.7 in /web/client by @dependabot[bot] in #106
  • chore(deps): bump @fontsource-variable/inter from 5.2.8 to 5.3.0 in /web/admin by @dependabot[bot] in #100
  • chore(deps): bump recharts from 3.9.2 to 3.10.1 in /web/admin by @dependabot[bot] in #102
  • chore(deps): bump github.com/aws/aws-sdk-go-v2/credentials from 1.19.29 to 1.19.31 by @dependabot[bot] in #112
  • feat(billing): choose the billing engine with STRATOS_BILLING_PROVIDER (native | external) by @locnguyen1986 in #98
  • fix(billing): nil-safe invoiceExchangeRate on bill settle by @hiento09 in #121
  • chore: relicense from AGPL-3.0 to Apache-2.0 by @hiento09 in #122
  • feat(k8s): managed kubernetes service on kamaji by @hiento09 in #116
  • chore: remove references to gitignored internal files by @hiento09 in #123
  • chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #119
  • chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #120
  • feat(k8s): hubble observability by default, bootstrap guide, one charts dir by @hiento09 in #124
  • ci(helm): independent release tags for the managed-k8s charts by @hiento09 in #125
  • feat(k8s): add node-problem-detector and reloader to the add-on menu by @hiento09 in #126

New Contributors

Full Changelog: v0.3.29...v0.4.0

v0.3.29

Choose a tag to compare

@github-actions github-actions released this 25 Jul 01:32
f9a8296

What's Changed

  • docs: revamp README and pin OpenStack support to 2026.1 by @Minh141120 in #65
  • fix(bucket): reject non-policy JSON instead of silently saving nothing by @hiento09 in #66
  • feat(bucket): add CORS tab to the bucket settings dialog by @hiento09 in #67
  • feat(account): client API tokens (API + MCP) + fix keypair list by @hiento09 in #81
  • chore(deps): bump actions/setup-go from 6 to 7 by @dependabot[bot] in #68
  • chore(deps): bump github.com/nyaruka/phonenumbers from 1.8.0 to 1.8.1 by @dependabot[bot] in #80
  • chore(deps-dev): bump tailwindcss from 4.3.2 to 4.3.3 in /web/client by @dependabot[bot] in #70
  • chore(deps-dev): bump tailwindcss from 4.3.2 to 4.3.3 in /web/admin by @dependabot[bot] in #71
  • chore(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.105.1 to 1.105.2 by @dependabot[bot] in #79
  • chore(deps): bump @tanstack/react-query from 5.101.2 to 5.101.3 in /web/client by @dependabot[bot] in #72
  • chore(deps): bump @fontsource-variable/inter from 5.2.8 to 5.3.0 in /web/client by @dependabot[bot] in #73
  • chore(deps-dev): bump vite from 8.1.4 to 8.1.5 in /web/admin by @dependabot[bot] in #74
  • chore(deps): bump @number-flow/react from 0.6.1 to 0.6.2 in /web/admin by @dependabot[bot] in #75
  • chore(deps): bump lucide-react from 1.24.0 to 1.25.0 in /web/client by @dependabot[bot] in #76
  • chore(deps): bump @fontsource-variable/jetbrains-mono from 5.2.8 to 5.3.0 in /web/admin by @dependabot[bot] in #77
  • chore(deps): bump @fontsource-variable/space-grotesk from 5.2.10 to 5.3.0 in /web/client by @dependabot[bot] in #78
  • chore(deps-dev): bump oxlint from 1.73.0 to 1.75.0 in /web/admin by @dependabot[bot] in #69
  • fix(notifier): support quorum queues via RABBITMQ_QUEUE_TYPE by @hiento09 in #82
  • fix(cloud): allow deleting user-scoped keypairs by @hiento09 in #83
  • feat(mcp): annotate tools with read-only / destructive hints by @hiento09 in #84
  • fix: security-group rule actions return 404 on live-listed groups by @hiento09 in #87
  • chore(deps): bump fast-uri from 3.1.3 to 3.1.4 in /web/admin in the npm_and_yarn group across 1 directory by @dependabot[bot] in #86
  • chore(deps): bump fast-uri from 3.1.3 to 3.1.4 in /web/client in the npm_and_yarn group across 1 directory by @dependabot[bot] in #85
  • feat(paging): BE-driven pagination for high-volume list surfaces by @hiento09 in #88
  • fix(roles): stop "Locked" wrapping mid-word in the Roles actions column by @hiento09 in #89
  • feat(console): proxy the VNC console through Stratos by @hiento09 in #90
  • fix(console): stop the reconnect loop; expose Gateway API timeout knobs by @hiento09 in #91
  • feat(console): add a serial console and a send-text box by @hiento09 in #92
  • fix(console): multi-line send box; stop the VNC screen rendering blank by @hiento09 in #93
  • fix(console): give the VNC viewport a real box; keep the pointer visible by @hiento09 in #94
  • fix(notifications): stop host telemetry flooding the logs by @hiento09 in #95

Full Changelog: v0.3.28...v0.3.29

v0.3.28

Choose a tag to compare

@github-actions github-actions released this 16 Jul 03:12
4487b21

What's Changed

  • Update release title in workflow by @hiento09 in #26
  • fix(notification): accept oslo's space-separated timestamp (was 400ing every ceilometer event) by @hiento09 in #27
  • ci(docker): manual dispatch to build+push a test image from any branch by @hiento09 in #30
  • Menlo design system restyle — client + admin consoles by @dinhlongviolin1 in #28
  • fix(resize): double-confirm returns 500 (idempotent confirm-resize + hide buttons) by @hiento09 in #29
  • docs: illustrate portal user guides and note OpenStack 2026.1 support by @Minh141120 in #31
  • Revert accidental direct-to-main first-server change by @Minh141120 in #33
  • Update first server guide by @Minh141120 in #34
  • chore(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.105.0 to 1.105.1 by @dependabot[bot] in #44
  • chore(deps): bump golang.org/x/crypto from 0.53.0 to 0.54.0 by @dependabot[bot] in #45
  • chore(deps): bump github.com/coreos/go-oidc/v3 from 3.19.0 to 3.20.0 by @dependabot[bot] in #47
  • chore(deps): bump lucide-react from 1.23.0 to 1.24.0 in /web/client by @dependabot[bot] in #38
  • chore(deps-dev): bump vite from 8.1.3 to 8.1.4 in /web/client by @dependabot[bot] in #40
  • chore(deps-dev): bump @types/node from 26.1.0 to 26.1.1 in /web/client by @dependabot[bot] in #41
  • chore(deps-dev): bump @types/node from 26.1.0 to 26.1.1 in /web/admin by @dependabot[bot] in #39
  • chore(deps-dev): bump vite from 8.1.3 to 8.1.4 in /web/admin by @dependabot[bot] in #42
  • chore(deps): bump lucide-react from 1.23.0 to 1.24.0 in /web/admin by @dependabot[bot] in #43
  • chore(deps): bump github.com/aws/aws-sdk-go-v2/credentials from 1.19.28 to 1.19.29 by @dependabot[bot] in #46
  • chore(deps-dev): bump typescript from 6.0.3 to 7.0.2 in /web/client by @dependabot[bot] in #36
  • chore(deps-dev): bump typescript from 6.0.3 to 7.0.2 in /web/admin by @dependabot[bot] in #37
  • chore(deps): bump docker/build-push-action from 6 to 7 by @dependabot[bot] in #35
  • polish: critical design pass over both consoles by @dinhlongviolin1 in #32
  • feat(web): add pagination and responsive cards to data tables by @hiento09 in #48
  • chore: fix client dashboard by @hiento09 in #49
  • feat(quota): surface live project quota usage on the client console by @hiento09 in #51
  • feat(cloud): boot-from-volume server create with curated storage types by @hiento09 in #54
  • fix(compose): pass AUTH_* OIDC config to the api service by @Minh141120 in #55
  • fix(cloud): volume-type catalog empty on client despite enabled admin config by @hiento09 in #56
  • feat(admin): warn when an image-group binding is not public in Glance by @hiento09 in #57
  • feat(gpu): surface per-project GPU usage on the client and admin consoles by @hiento09 in #59
  • feat(gpu): opt-in per-project GPU capacity on the client dashboard by @hiento09 in #60
  • feat(admin): show the full region GPU catalog in the project quota tab by @hiento09 in #62
  • feat(gpu): show the full region GPU catalog in the client quota tiles by @hiento09 in #61
  • fix(create-server): gate GPU flavors on region capacity by @hiento09 in #63
  • chore(chart): bump chart and appVersion to 0.3.28 by @hiento09 in #64

New Contributors

Full Changelog: v0.3.27...v0.3.28

v0.3.27

Choose a tag to compare

@github-actions github-actions released this 10 Jul 16:57
787087f

What's Changed

  • feat: enable cephs3 rgw provider by @hiento09 in #19
  • Implement Ceph S3 provider onboarding and admin UI enhancements by @hiento09 in #20
  • Attach cloud provider to existing projects in admin UI by @hiento09 in #22
  • docs(getting-started): expand 'Launch Your First Server' with screenshots by @Minh141120 in #21
  • Document RGW hostname prerequisites and project onboarding process by @hiento09 in #23
  • Implement pluggable usage-metrics source for billing by @hiento09 in #24
  • fix(audit): cloud-resource identity on client cloud events + default bucket store to S3 by @hiento09 in #25

New Contributors

Full Changelog: v0.3.26...v0.3.27

v0.3.26

Choose a tag to compare

@hiento09 hiento09 released this 09 Jul 06:47

Stratos v0.3.26

The first public release of Stratos — a multi-tenant self-service and billing platform for OpenStack clouds. Operators turn a set of OpenStack regions into a metered, self-service cloud with accounts, projects, usage-based billing, and payments; customers get a console to run compute, storage, and networking and to manage their spend.

Consoles & API

  • Customer console (web/client) — self-service compute (including GPU flavors), block storage, networks / subnets / routers, floating IPs, load balancers, object storage, and shares, plus billing, invoices, savings plans, team members, and account settings.
  • Operator console (web/admin) — cloud providers, price plans and rate rules, currencies and taxes, invoicing, promotions, savings plans, flavor and image catalogs, custom menu items, login branding, message templates, users, organizations, billing profiles, and an audit log.
  • Go API serving three surfaces from one process:
    • /api/v1 — the customer API,
    • /admin-api/v1 — the AWS SigV4-signed operator API,
    • /mcp — a Model Context Protocol server exposing an admin toolset to AI agents.
  • PostgreSQL storage — all application state lives in one PostgreSQL database as JSONB documents; RabbitMQ carries the charge fan-out. Both can be bundled by the chart or brought externally.

Billing & payments

  • Usage-based billing — cached OpenStack resources are rated each hour against configurable price plans (per resource type, priced attribute, and time unit), accrued onto an open monthly bill, and settled from account credits.
  • GPU pricing, capacity & quota — per-model GPU rate rules, live cluster GPU capacity read from the Placement API, and per-project GPU quotas enforced at the Stratos gate.
  • Currencies, taxes, invoicing & suspension — a platform base currency, tax rules, PDF invoices and statements, and automatic balance- or due-date-based account suspension.
  • Payments — card and deposit payments and refunds via Stripe, bank transfers, account credits, sign-up bonuses, and provisioning promotional credits.
  • Savings plans & promotions — commitment discounts and promotion codes.

OpenStack integration

  • Provisioning & sync — projects are bootstrapped as Keystone tenants; servers, volumes, networks, images, and other resources are synced into a cache that feeds billing.
  • Metering & notifications — Gnocchi usage metrics and OpenStack event notifications, with per-service enable/disable across one or more regions.
  • Networking controls — a per-project external-network allow-list, plus an optional auto-pick of the external network for floating IPs and router gateways.

Identity & access

  • Sign-in via Keycloak or any OpenID Connect provider (authorization-code + PKCE).
  • Organizations, projects & RBAC — organization- and project-scoped roles, user invitations, and organization-provisioning quotas. Organization owners and admins inherit access to every project in their organization.

Deployment & documentation

  • Helm chart (deploy/chart) bundling PostgreSQL, RabbitMQ, and Keycloak (each toggle-able), with per-component Ingress or Gateway API, external datastores, and CloudNativePG as options. Container images and the chart are published to ghcr.io/menlocloud on each v* tag.
  • In-app documentation at /docs in both consoles — tenant guides, operator guides, and an Admin API reference.

Security

  • Third-party integration secrets (SMTP, Stripe) and cloud credentials are encrypted at rest.
  • The operator API and MCP require a purpose-scoped credential; the unauthenticated key-minting debug trigger is disabled unless explicitly enabled.
  • The admin PDF-template preview is rendered in a sandboxed frame.
  • Tenant and project authorization is enforced on cloud and billing operations, including the external-network allow-list and application-credential scoping.