StackJack 0.1.0.3978+271db8f
This release tightens how connector credentials are handled when a connector's host changes, removes retry behaviour that could make a vendor write take effect more than once, and corrects several plan-change and entitlement errors. Support ticket details are also more reliable, and no longer roll back when updates arrive late.
Improvements
- Saving a connector after changing its instance URL no longer carries over a secret that was issued by the previous host. If you leave a credential field blank to keep the stored value while moving the host, the save is now refused with an actionable message asking you to supply a credential for the new host. Previously the save appeared to succeed, the next refresh failed, and the credential was eventually disabled automatically.
- For connectors that support per-user authorization (HaloPSA, NinjaOne), saving a new shared host no longer rewrites each user's stored token to point at the new host. Users holding their own token are reported as skipped, so it is clear that they need to re-authorize against the new host β which is required after a host move in any case.
- Halo authorization-code connections are more stable: a token refresh that comes back with a server error is no longer resent automatically. The resend could consume a single-use refresh token and break the connection until it was re-authorized.
- NinjaOne write calls β reboots, script runs, maintenance windows, and ticket or organization creation β are no longer retried after a server error or transport failure, so one request can no longer take effect more than once. Reads still retry as before.
- Billing actions now check your permissions at the moment you use them rather than when the page was loaded, so a change to your role takes effect immediately.
Bug fixes
- Deep links carried through sign-in now keep their query string intact, so you land on the page you originally requested instead of a mangled URL.
- Approving tool grants for an agent no longer discards a tool change saved at the same moment. Previously a tool revoked while an approval was in flight could become callable again. If the agent's tool policy changed while an approval was being prepared, the approval is now refused as a conflict so you can review it against the current policy.
- Plan upgrades now apply the tier change and the usage-cycle reset together. An interrupted upgrade can no longer leave the account on its old plan with a fresh quota, and retrying an upgrade no longer resets usage a second time and discards usage accrued in between.
- A scheduled plan change is no longer wiped out when an older subscription event is processed late.
- Plan entitlement now ignores subscription items that are no longer active, so an account is granted the tier its active subscription actually covers.
- ConnectWise Automate calls that retry after a token expires no longer fail with an authentication error caused by a duplicated header on the retry.
- CIPP and Microsoft connections in Azure China (21Vianet) now accept the documented login host instead of failing on every token acquisition.
- Support ticket details no longer roll backwards: a late-arriving update can no longer overwrite a ticket's current title, description, or status with older values.
- A ticket whose author is associated with more than one organization is no longer attached to whichever organization happened to be found first; genuinely ambiguous cases are left unlinked instead. A ticket from the sole owner of a deactivated organization is still linked to that organization.
Breaking changes
- A vendor request that is redirected to a different host is no longer resent to that host with its payload; the redirect is surfaced as an error instead. Redirects that would move a connection from HTTPS to HTTP are also refused. Redirected reads without a payload still follow the redirect as before, so this affects only writes that depend on a cross-host redirect β for example a Meraki write answered with a redirect to another shard, which now fails visibly.
UI & UX changes
- The update payment method and cancel subscription actions are now buttons rather than plain links. They confirm your permissions before opening the billing page, which means they can no longer be middle-clicked into a new tab or copied as a link.