diff --git a/apps/ui/html/settings.html b/apps/ui/html/settings.html index 4ac3b5c..c09047f 100644 --- a/apps/ui/html/settings.html +++ b/apps/ui/html/settings.html @@ -165,8 +165,6 @@
This build limits the default protocol to the capabilities available in the current edition.
diff --git a/apps/ui/html/wizard/step1.html b/apps/ui/html/wizard/step1.html index d59984a..b64682b 100644 --- a/apps/ui/html/wizard/step1.html +++ b/apps/ui/html/wizard/step1.html @@ -34,87 +34,6 @@ - - - - - - - - diff --git a/apps/ui/html/wizard/step3-graphql.html b/apps/ui/html/wizard/step3-graphql.html deleted file mode 100644 index 1fd61dc..0000000 --- a/apps/ui/html/wizard/step3-graphql.html +++ /dev/null @@ -1,90 +0,0 @@ -
-
-
-
- Step 3 of 5 -
-

GraphQL operation

-

Define the GraphQL operation this tool will execute. All requests are sent as HTTP POST to the endpoint configured in the previous step. Variables are populated from MCP tool arguments at runtime.

-
- - -
-
-
- - - - -
-
-
Operation type
-
GraphQL operation kind — subscriptions are not supported
-
- Required -
-
-
- - -
-
-
- - -
-
-
- - - - -
-
-
Query document
-
GraphQL document with typed variable declarations
-
- Required -
-
-
-
-
- graphql / query -
- -
-
-
- - -
- - - - -
-
Variables are mapped in step 5
-
Declare all variables in the query document using the $variable: Type syntax. In step 5 you will map MCP input fields to these variables. Crank serializes the final {"query","variables"} payload automatically.
-
-
- -
diff --git a/apps/ui/html/wizard/step3-grpc.html b/apps/ui/html/wizard/step3-grpc.html deleted file mode 100644 index 92deb30..0000000 --- a/apps/ui/html/wizard/step3-grpc.html +++ /dev/null @@ -1,274 +0,0 @@ -
-
-
-
- Step 3 of 5 -
-

RPC method

-

Choose how to describe the gRPC service contract. Upload a .proto file, discover methods from a live server via reflection, or enter the route manually. Only unary RPCs are supported.

-
- - -
- - - -
- - -
-
-
-
- -
-
-
Proto definition
-
Upload or paste your .proto file
-
- Required -
-
-
- - - - -
Drop .proto file here
-
or click to browse
- -
- -
-
- -
-
- -
-
- -
- - - - - - - - - - -
- - - - - - - - - diff --git a/apps/ui/html/wizard/step3-soap.html b/apps/ui/html/wizard/step3-soap.html deleted file mode 100644 index 09a5366..0000000 --- a/apps/ui/html/wizard/step3-soap.html +++ /dev/null @@ -1,101 +0,0 @@ -
-
-
-
- Step 3 of 5 -
-

WSDL and SOAP binding

-

Upload the WSDL/XSD bundle, inspect services and choose the exact service, port and operation that Crank should expose as an MCP tool.

-
- -
-
-
- - - - -
-
-
Contract files
-
WSDL is required. Supporting XSD files are optional and can be uploaded before discovery.
-
- Required -
-
-
- - - No WSDL selected -
-
- - - No XSD selected -
-
- -
-
-
-
-
- -
-
-
- - - -
-
-
Selected binding
-
The chosen service, port and operation become the target binding for this operation draft.
-
- Optional -
-
-
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
-
- - -
Defaults to the upstream base URL from step 2. Override only when the binding address differs from the selected upstream.
-
-
-
-
diff --git a/apps/ui/html/wizard/step3-websocket.html b/apps/ui/html/wizard/step3-websocket.html deleted file mode 100644 index 57b06ca..0000000 --- a/apps/ui/html/wizard/step3-websocket.html +++ /dev/null @@ -1,94 +0,0 @@ -
-
-
-
- Step 3 of 5 -
-

WebSocket subscription

-

Define the subscription handshake, the message templates and the connection tuning that Crank should use before collecting bounded WebSocket events.

-
- -
-
-
- - - -
-
-
Connection
-
The upstream base URL from step 2 becomes the WebSocket endpoint unless you override it here.
-
- Optional -
-
-
- - -
Appended to the upstream URL from step 2. Leave empty if the upstream URL already points to the full WebSocket endpoint.
-
-
- - -
One subprotocol per line. Crank offers them during the handshake in the same order.
-
-
-
- -
-
-
- - - - -
-
-
Subscription messages
-
Templates are sent after the socket opens. They can reference MCP input through the mapping step.
-
- Optional -
-
-
- - -
-
- - -
-
-
- -
-
-
- - - -
-
-
Connection tuning
-
Used by the runtime adapter for heartbeats and reconnects in bounded session-oriented flows.
-
- Optional -
-
-
-
- - -
-
- - -
-
- - -
-
-
-
-
diff --git a/apps/ui/html/workspace-setup.html b/apps/ui/html/workspace-setup.html index 7e0d303..a5bb8a9 100644 --- a/apps/ui/html/workspace-setup.html +++ b/apps/ui/html/workspace-setup.html @@ -88,10 +88,6 @@
Pre-selected in the operation wizard.
diff --git a/apps/ui/js/settings.js b/apps/ui/js/settings.js index d01e8e6..f044216 100644 --- a/apps/ui/js/settings.js +++ b/apps/ui/js/settings.js @@ -83,7 +83,7 @@ function renderWorkspaceProtocolOptions(capabilities, selectedProtocol) { var supportedProtocols = capabilities && Array.isArray(capabilities.supported_protocols) && capabilities.supported_protocols.length ? capabilities.supported_protocols - : ['rest', 'graphql', 'grpc']; + : ['rest']; var fallbackProtocol = supportedProtocols.indexOf('rest') !== -1 ? 'rest' : supportedProtocols[0]; var effectiveSelection = supportedProtocols.indexOf(selectedProtocol) !== -1 ? selectedProtocol diff --git a/apps/ui/js/wizard-shell.js b/apps/ui/js/wizard-shell.js index 655abc7..df864f2 100644 --- a/apps/ui/js/wizard-shell.js +++ b/apps/ui/js/wizard-shell.js @@ -10,15 +10,11 @@ } function step3PanelId() { - if (window.wizardProtocol === 'graphql') return 'step-panel-3-graphql'; - if (window.wizardProtocol === 'grpc') return 'step-panel-3-grpc'; - if (window.wizardProtocol === 'websocket') return 'step-panel-3-websocket'; - if (window.wizardProtocol === 'soap') return 'step-panel-3-soap'; return 'step-panel-3-rest'; } function stepFile(step) { - return step === 3 ? 'step3-' + window.wizardProtocol + '.html' : 'step' + step + '.html'; + return step === 3 ? 'step3-rest.html' : 'step' + step + '.html'; } function buildIconSvg(href, width, height) { @@ -186,27 +182,13 @@ card.setAttribute('aria-checked', 'true'); var protocol = card.dataset.protocol - || (card.classList.contains('rest') - ? 'rest' - : card.classList.contains('graphql') - ? 'graphql' - : card.classList.contains('grpc') - ? 'grpc' - : card.classList.contains('websocket') - ? 'websocket' - : card.classList.contains('soap') - ? 'soap' - : 'rest'); + || 'rest'; window.wizardProtocol = protocol; var step3Name = document.getElementById('sidebar-step-3-name'); var labels = window.CrankWizardState.step3Labels(); if (step3Name) step3Name.textContent = labels[protocol] || tKey('wizard.step3.rest.label'); - if (protocol === 'graphql') { - var pathInput = document.getElementById('endpoint-path'); - if (pathInput && pathInput.value === '/v1/leads') pathInput.value = '/graphql'; - } }); card.addEventListener('keydown', function(event) { if (event.key === 'Enter' || event.key === ' ') { @@ -220,7 +202,7 @@ function applyEditionProtocolVisibility(capabilities) { var supported = capabilities && Array.isArray(capabilities.supported_protocols) ? capabilities.supported_protocols.slice() - : ['rest', 'graphql', 'grpc']; + : ['rest']; var hiddenProtocols = []; document.querySelectorAll('.protocol-card').forEach(function(card) { diff --git a/apps/ui/js/wizard-state.js b/apps/ui/js/wizard-state.js index 7c60a27..37f394a 100644 --- a/apps/ui/js/wizard-state.js +++ b/apps/ui/js/wizard-state.js @@ -11,13 +11,7 @@ wizardWorkspaceId: null, wizardCurrentOperation: null, wizardCurrentVersion: null, - wizardProtoUpload: null, - wizardDescriptorSetUpload: null, - wizardSoapWsdlUpload: null, - wizardSoapXsdUpload: null, wizardTestResponsePreview: null, - grpcDescriptorServices: [], - soapServiceCatalog: [], wizardProtocolCapabilities: null, wizardEditionCapabilities: null, wizardSecrets: [], @@ -50,29 +44,13 @@ supports_execution_modes: ['unary'], supports_transport_behaviors: ['request_response'], }, - graphql: { - supports_execution_modes: ['unary'], - supports_transport_behaviors: ['request_response'], - }, - grpc: { - supports_execution_modes: ['unary'], - supports_transport_behaviors: ['request_response'], - }, - websocket: { - supports_execution_modes: ['unary'], - supports_transport_behaviors: ['request_response'], - }, - soap: { - supports_execution_modes: ['unary'], - supports_transport_behaviors: ['request_response'], - }, }; } function defaultEditionCapabilities() { return { edition: 'community', - supported_protocols: ['rest', 'graphql', 'grpc'], + supported_protocols: ['rest'], supported_security_levels: ['standard'], machine_access_modes: ['static_agent_key'], limits: { @@ -130,10 +108,6 @@ function step3Labels() { return { rest: tKey('wizard.step3.rest.label'), - graphql: tKey('wizard.step3.graphql.label'), - grpc: tKey('wizard.step3.grpc.label'), - websocket: tKey('wizard.step3.websocket.label'), - soap: tKey('wizard.step3.soap.label'), }; } diff --git a/apps/ui/scripts/build.js b/apps/ui/scripts/build.js index ea88de7..b3d8991 100644 --- a/apps/ui/scripts/build.js +++ b/apps/ui/scripts/build.js @@ -202,7 +202,17 @@ async function main() { copyDirectory(path.join(ROOT_DIR, 'css'), path.join(DIST_DIR, 'css')); copyDirectory(path.join(ROOT_DIR, 'data'), path.join(DIST_DIR, 'data')); - copyDirectory(path.join(ROOT_DIR, 'html', 'wizard'), path.join(DIST_DIR, 'html', 'wizard')); + ensureDirectory(path.join(DIST_DIR, 'html', 'wizard')); + [ + 'html/wizard/index.html', + 'html/wizard/step1.html', + 'html/wizard/step2.html', + 'html/wizard/step3-rest.html', + 'html/wizard/step4.html', + 'html/wizard/step5.html', + ].forEach(function(relativePath) { + copyFile(path.join(ROOT_DIR, relativePath), path.join(DIST_DIR, relativePath)); + }); copyDirectory(path.join(ROOT_DIR, 'icons'), path.join(DIST_DIR, 'icons')); copyFile(resolveBrandImage(), path.join(DIST_DIR, 'Crank.png'));