Stardetha One Integration
Connect ILS to the independent licensing platform, with explicit legacy compatibility and signed grants.
This release embeds the Stardetha One SDK in the existing Instant Language Switcher plugin. Customer installations default to the production One service. Explicit legacy mode remains supported; legacy keys, purchases, activations and customer records are not automatically migrated.
Requirements
WordPress 6.4+, PHP 8.1+, OpenSSL with RSA/SHA-256 and AES-256-GCM support. One mode currently supports single-site WordPress only. Both site and licensing service must have public HTTPS DNS addresses on port 443. Keep the WordPress authentication salts stable. The Laravel service requires its own PHP 8.3+ server; the outer source bundle cannot be installed as a WordPress plugin.
Configure and connect
For customer installation, read customer-installation.html: install the plugin, open Instant Languages → License and enter your live licence key. Production URL, environment and public signing key are bundled; no wp-config.php edits are needed.
For existing legacy customers, explicitly set IST_LICENSE_BACKEND to legacy in wp-config.php before upgrading. Legacy keys do not become One keys. For staging or another trusted One service, define IST_LICENSE_BACKEND as one plus all three trust settings (IST_ONE_SERVER_URL, IST_ONE_ENVIRONMENT and IST_ONE_PUBLIC_KEY) before WordPress loads. Complete existing overrides are retained; partial overrides fail closed. Obtain custom public keys from the trusted operator, never by automatic download. Never install a private signing key on WordPress.
Back up the database, files and wp-config.php before replacing the plugin. Confirm Active, environment, site and grants after activation. Keep WordPress salts stable. Ensure WordPress cron runs regularly for hourly licence refresh.
The example Stardetha One Licence Client plugin is not required. It has separate storage and would consume a separate activation slot if activated with the same licence. ILS embeds the SDK in the isolated IST\Vendor\StardethaOne\V050 namespace so the example and other SDK consumers can coexist.
Feature behavior in One mode
| Operation | Policy |
|---|---|
| Automatic page/string translation, whole-site generation, rendered discovery, visual automatic translation and queue work | Requires a valid signed active/offline licence. |
| Actual provider translation request | Also requires the target within the first N enabled non-default languages in the configured Languages order, where N is the signed integer translation_languages grant. Missing, boolean or zero grants allow no targets. |
| Queue job outside the target grant | Pauses that job without sending text or consuming its queued items. Adjust language order or the plan, then retry. An out-of-plan first job can hold up later jobs until resolved. |
| Translation-memory exact suggestions/reuse and remembering new translations | Requires translation_memory exactly true; integer 1 is not accepted. |
| Existing memory records | Retained and remain available for administrator inspection/deletion; denied reuse does not delete them. |
| Published translations, frontend language switching, existing language settings and manual translation editing | Continue without an active licence; no content is removed on expiry or downgrade. |
| monthly_characters | Shared UTC monthly character allowance. Every automatic batch requires online authorization before dispatch. Authorized batches remain counted on provider failure. See usage-metering.html for counting, retries and limitations. |
| Automatic WordPress updates | One-mode licensed updates with short-lived download authorization and size/SHA-256 checks. Manually install ILS 0.24.0 once; read plugin-updates.html. The legacy updater remains unchanged. |
Ordering defines which targets can receive NEW automatic translations; it never removes published languages. The server independently enforces activation capacity. Grant changes on an existing licence reach the plugin at its next successful refresh. Changing a plan record alone does not rewrite the licence snapshot.
Offline access and failures
The SDK verifies the pinned RSA signature, protocol, issuer, licence/activation/product/installation/site/environment binding and time limits on every grant read. Refresh is normally due after 24 hours. Transient transport errors, HTTP 408/429 or 5xx can retain only the original still-valid token, with a maximum 72-hour lifetime capped by licence expiry. There is no extra 14-day grace in One mode. A definitive service rejection or an invalid successful response removes cached grants immediately. Automatic retries are bounded; manual Check now has a one-minute cooldown.
Configuration, signature, storage, clone or multisite failures never fall back to legacy grants. Correct configuration before retrying. Changed WordPress salts make the encrypted connection unreadable. A changed site URL or trust configuration cannot send an old installation credential to a new endpoint.
Disconnect, reset, deactivate and uninstall
Disconnect clears local access before requesting server slot release. A failed release retains only the recovery state and is retried by hourly refresh or Check now. The screen reports an unconfirmed release; it must not be treated as a freed slot. Reset local connection requires an explicit checkbox and an administrator nonce; it performs no remote release. Prefer releasing the old activation in the customer portal first. Configure a valid service/key before using reset.
Deactivating the plugin stops the One cron event and preserves connection data. Uninstall always clears that cron event. If delete_on_uninstall is disabled (the existing retention default), data and encrypted credentials remain. If enabled, the normal destructive uninstall also deletes ist_one_license and its lock. Uninstall never contacts the licence service; disconnect first if releasing a slot is intended.
To return to the legacy service, disconnect One first, then set IST_LICENSE_BACKEND to legacy and activate a valid legacy key. The ist_license option is preserved across the switch. An invalid backend value fails closed in One configuration mode. The ist_license_api_base filter applies only to legacy mode; it cannot redirect One credentials. Do not repeatedly toggle between servers as a substitute for proper deactivation.
Validation and release limits
Automated integration tests exercise the actual Laravel activation/signature routes with memory mutation storage, and real plugin adapters/repositories/provider boundaries with narrow WordPress test doubles. They are not a native WordPress/MySQL installation test. Staging acceptance must verify encrypted option writes and locks with real MySQL/object caching, admin forms/nonces, cron, plugin lifecycle, translation-provider behavior, language ordering/downgrades, coexistence with other plugins, and the existing published site. Live gateway, PostgreSQL contention and browser acceptance remain outstanding. No site was deployed or charged by this release.
SDK signed protocol v2 is unchanged. The service now requires the usage-ledger migration described in usage-metering.html. This package is not a blanket production readiness sign-off; see customer-installation.html for the acceptance evidence and remaining packaged-upgrade check.
0.23.0 online usage requirement
Automatic generation needs online character authorization even when a cached licence remains valid. Deploy the Stardetha One 0.7.0 migration before upgrading all One-mode clients. Older clients do not enforce this meter. Read usage-metering.html; the limit counts authorizations, not provider invoices.
0.24.0 licensed updates
Deploy the Stardetha One 0.8.0 release migration, install ILS 0.24.0 manually once and import reviewed release ZIPs through the operator CLI. Later versions can use normal WordPress update controls while ILS is active. Online eligibility and verified package bytes are required at install time. See plugin-updates.html.
Staging acceptance (0.9.0)
Read staging-acceptance.html for the read-only readiness checker, disposable native WordPress runner, CI matrix and checks that remain pending. No production sign-off is implied.
Customer downloads — platform 0.11.0
Customers can now obtain the first ZIP from a paid order or their Licences page. See Customer Plugin Downloads. Existing staging overrides are preserved.