Infrastructure tracking issue for the coordinated rollout of the new my service across the fleet. Full step-by-step runbook lives in MIGRATION.md on this repository.
High-level phases
Pull requests involved
| # |
Repo |
PR |
Status |
| 1 |
my |
#81 |
MERGED |
| 2 |
nethsecurity |
#1608 dual-send |
MERGED |
| 3 |
nethsecurity |
#1609 cutover |
Draft |
| 4 |
nethsecurity-ui |
#746 UI consumer |
Draft |
| 5 |
ns8-core |
#1146 dual-send |
MERGED |
| 6 |
ns8-core |
#1148 cutover |
Draft |
| 7 |
my |
#152 entitlements + /auth + widgets |
Open |
| 8 |
nethshop |
#2 add-on integration |
Ready-to-merge |
| 9 |
nethesis-sso |
#2 SSO /userinfo |
Ready-to-merge |
| 10 |
icaro |
#200 OIDC login + data-only /userinfo |
Ready-to-merge |
Go / no-go
Cutover PRs blocked until Phase 1 is complete and my.nethesis.it/proxy/credentials responds with mapped credentials for a known test unit.
Refs: #83.
Infrastructure tracking issue for the coordinated rollout of the new
myservice across the fleet. Full step-by-step runbook lives inMIGRATION.mdon this repository.High-level phases
Phase 1 — new my go-live (parallel to old my)
my#81; deploy to Render prod/collect/+/backend/proxy_passonmy-entnginx somy.nethesis.itserves both old my and new my from the same hostnameqa.my.nethesis.itto the Render prod URLPhase 2 — dual-send release (safe)
nethsecurity#1608; release firmwarens8-core#1146; release core package setmy-ent's/var/log/proxy/*.logand on new my dashboardPhase 3 — cutover release (actual migration)
nethsecurity#1609+nethsecurity-ui#746; release firmwarens8-core#1148; release core package setfacts.migration.from_legacy_system_idcoverage vs.proxy_mappingsrow countPhase 3.5 — NethShop & NethSpot on new my (before the DNS flip)
Both must be merged and released before the flip so the add-on / dashboard integration keeps working when
my.nethesis.itbecomes new my. Detail runbook:ENTITLEMENTS_RELEASE_TODO.md.v0.8.0— entitlements backend + collect native/auth+ dashboard widgets; migration037applied by hand on QA + prodnethshop#2+nethesis-sso#2; deploy plugins to LIVEnethshop.nethesis.it; wp-config prod (owner key;NETH_ENT_MY_API/NETH_ENT_MY_URL;NETHESIS_OPENID_*;NETHESIS_ACTIVATE_REFERRER_HOSTS;NETH_ENT_MY_HOSTS;NETHESIS_USERINFO_ORIGINS_CFG— pre-flip usebeta.my.nethesis.itoverrides); publish + map the enterprise products (_entitlement_id, must be publish + purchasable); E2E LIVE (Buy → SSO → checkout → grant) + stamp legacy orders; verifyrenew-services.phpcovers the enterprise product idsicaro#200(Logto OIDC login + data-only/userinfo) to nethspot; add prod my origins (my.nethesis.it,beta.my.nethesis.it) to the NethSpot/userinfoCORS allowlistPhase 4 — DNS cutover
my.nethesis.itDNS to new my Renderlegacy.my.nethesis.it→my-ent(same IPmy.nethesis.ithad)/api/*,/isa/*,/proxy/*,/auth/*→legacy.my.nethesis.itbeta.my.nethesis.it→my.nethesis.it(wp-configNETH_ENT_MY_*, CORS/referrer/host allowlists); enable the NethShop login buttonPhase 5 — decommissioning
/proxy/*onmy-entoncefacts.migration.from_legacy_system_idcovers the fleetmy-entgrant-all/authbroker → collect native/auth(closes the transitional grant-all); validate nsec feeds (200 with grant / 403 without)legacy.my.nethesis.it,backupd.nethesis.itandmy.nethserver.com(dartagnan) online indefinitely — non-upgradable legacy systems and NS8 community still depend on them for heartbeat/inventory/backup, and migrated units still hit/api/Utils/freekeyat unregister timePull requests involved
mynethsecuritynethsecuritynethsecurity-uins8-corens8-coremy/auth+ widgetsnethshopnethesis-sso/userinfoicaro/userinfoGo / no-go
Cutover PRs blocked until Phase 1 is complete and
my.nethesis.it/proxy/credentialsresponds with mapped credentials for a known test unit.Refs: #83.