QRun-IO/ci-policy: ci / fork-guard (push) Skipped
QRun-IO/ci-policy: ci / head-profile (push) Skipped
QRun-IO/ci-policy: ci / application-template-0 (push) Skipped
QRun-IO/ci-policy: ci / gradle-1 (push) Skipped
QRun-IO/ci-policy: ci / java-docker-3 (push) Skipped
QRun-IO/ci-policy: ci / java-docker-4 (push) Skipped
QRun-IO/ci-policy: ci / java-frontend-browser-5 (push) Skipped
QRun-IO/ci-policy: ci / java-maven-6 (push) Skipped
QRun-IO/ci-policy: ci / java-maven-7 (push) Skipped
QRun-IO/ci-policy: ci / node-8 (push) Skipped
QRun-IO/ci-policy: ci / node-9 (push) Skipped
QRun-IO/ci-policy: ci / node-10 (push) Skipped
QRun-IO/ci-policy: ci / node-playwright-11 (push) Skipped
QRun-IO/ci-policy: ci / repository-policy-12 (push) Skipped
QRun-IO/ci-policy: ci / source-config-13 (push) Skipped
QRun-IO/ci-policy: ci / source-config-14 (push) Skipped
QRun-IO/ci-policy: ci / android-0 (push) Skipped
QRun-IO/ci-policy: ci / original-business (push) Skipped
QRun-IO/ci-policy: ci / original-mcp (push) Skipped
QRun-IO/ci-policy: ci / original-voyage (push) Skipped
QRun-IO/ci-policy: ci / original-cli (push) Skipped
QRun-IO/ci-policy: ci / repository-policy (push) Skipped
QRun-IO/ci-policy: ci / java-core-2-head (push) Skipped
QRun-IO/ci-policy: ci / java-docker-3-head (push) Skipped
QRun-IO/ci-policy: ci / java-maven-6-head (push) Skipped
QRun-IO/ci-policy: ci / java-maven-7-head (push) Skipped
QRun-IO/ci-policy: ci / not-enrolled (push) Failing after 7s
QRun-IO/ci-policy: native / fork-deny (push) Skipped
QRun-IO/ci-policy: native / dotnet-0 (push) Skipped
QRun-IO/ci-policy: ci / ci-result (push) Failing after 6s
QRun-IO/ci-policy: native / native-result (push) Successful in 6s
Save the current implementation and README, status, and known-issue documentation at the user-requested stop. No completed release or deployment is claimed. Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: GPT-6 Codex <noreply@openai.com>
50 lines
3.1 KiB
Plaintext
50 lines
3.1 KiB
Plaintext
// Documentation example only: not a new configuration loader or application entrypoint.
|
|
// The host supplies a verified SSLContext, secret-backed stable coordinator key,
|
|
// reviewed deployment evidence, existing backend, and declared least-authority identity.
|
|
import javax.net.ssl.SSLContext;
|
|
import java.time.Duration;
|
|
import java.util.Set;
|
|
import com.kingsrook.qbits.scripting.ScriptingQBitConfig;
|
|
import com.kingsrook.qbits.scripting.build.BuildCoordinator;
|
|
import com.kingsrook.qbits.scripting.rdbms.RdbmsScriptingTransactionPolicy;
|
|
import com.kingsrook.qbits.scripting.service.ScriptingRuntime;
|
|
import com.kingsrook.qbits.scripting.service.WarmReconciliationConfig;
|
|
import com.kingsrook.qbits.scripting.worker.PersistentWorkerProvider;
|
|
import com.kingsrook.qbits.scripting.worker.WorkerMessages.ExecutionLimits;
|
|
import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
|
|
import com.kingsrook.qqq.backend.core.serviceidentity.QServicePrincipalMetaData;
|
|
import com.kingsrook.qqq.backend.core.serviceidentity.ServiceIdentitiesMetaData;
|
|
|
|
final class ApplicationConnection
|
|
{
|
|
static ScriptingQBitConfig configure(QInstance instance, String backendName,
|
|
SSLContext applicationMtls, byte[] coordinatorKey, String coordinatorId,
|
|
String reviewedEvidenceId, QServicePrincipalMetaData warmPrincipal)
|
|
{
|
|
String toolchain = "typescript-6.0.3-node-24";
|
|
// These are example operator DNS names, not automatic Kubernetes discovery.
|
|
// Server certificate SANs must match the exact names passed here.
|
|
var transport = new PersistentWorkerProvider.Configuration(applicationMtls,
|
|
new PersistentWorkerProvider.Endpoint("scripting-execution.workers.svc.cluster.local", 18443),
|
|
new PersistentWorkerProvider.Endpoint("scripting-compiler.workers.svc.cluster.local", 18444),
|
|
"application-v1", "wasm-64m-v1", toolchain, reviewedEvidenceId, reviewedEvidenceId,
|
|
Duration.ofSeconds(30), 4, 2, 64, 8L * 1024 * 1024);
|
|
var worker = new PersistentWorkerProvider(transport, 2);
|
|
// Host must grant this declared principal scripting.warm, scripting.view and
|
|
// current project/source-metadata visibility under its tenant/credential policy.
|
|
// It must not inherit an initiating user's session or source-record privileges.
|
|
ServiceIdentitiesMetaData.ofOrWithNew(instance).withPrincipal(warmPrincipal);
|
|
var runtime = new ScriptingRuntime().withWorker(worker)
|
|
.withCoordinator(new BuildCoordinator(coordinatorId, coordinatorKey, toolchain))
|
|
.withRequiredQualificationId(reviewedEvidenceId)
|
|
.withTransactionPolicy(new RdbmsScriptingTransactionPolicy())
|
|
.withLimits(ExecutionLimits.hookDefaults())
|
|
.withWarmReconciliation(new WarmReconciliationConfig(warmPrincipal.getName(),
|
|
Set.of("purchaseOrder"), 100, 8L * 1024 * 1024,
|
|
Duration.ofSeconds(10), Duration.ofSeconds(20), Duration.ofSeconds(60)));
|
|
// Existing producer/native application lifecycle owns registration/start/stop.
|
|
// Do not connect/prepare from record execution or start a separate timer.
|
|
return (new ScriptingQBitConfig().withBackendName(backendName).withRuntime(runtime));
|
|
}
|
|
}
|