{"environment":"Maison Lucie Demo","synthetic":true,"generatedAt":"2026-10-19T10:56:40.273Z","persistence":"vercel-kv","applications":[{"id":"sap-s4","name":"Lucie S/4 Core","marketReference":"SAP S/4HANA","role":"Suppliers, products and purchase orders","protocol":"REST / OData-like","baseUrl":"/api/data/sap-s4","auth":{"type":"Basic Auth","credentialFields":["username","password","tenant"],"secretDelivery":"Studio-configured demo profile"},"refresh":"On demand + every 15 min","status":"AVAILABLE","disclaimer":"Synthetic emulator; not affiliated with SAP. Credentials work only as demonstration metadata.","config":{"id":"sap-s4","endpoint":"/api/data/sap-s4","protocol":"REST / OData-like","refresh":"On demand + every 15 min","enabled":true,"auth":{"type":"Basic Auth","username":"aura_demo","password":"LUCIE-DEMO-ONLY","tenant":"lucie-fr-100"},"updatedAt":null,"syntheticCredentials":true},"tables":["PurchaseOrder","Supplier","Material"],"protocols":{"rest":{"method":"GET","url":"/api/data/sap-s4","tableUrl":"/api/data/sap-s4?table={table}","format":"application/json","auth":"Basic Auth"},"soap":{"method":"POST","url":"/api/soap?app=sap-s4","wsdl":"/api/soap?wsdl&app=sap-s4","operations":["GetPurchaseOrders","GetSuppliers","GetMaterials","GetRecords"],"format":"text/xml (SOAP 1.1)","auth":"Basic Auth (same credentials as REST) — or gateway Bearer token"},"graphql":{"method":"POST","url":"/api/graphql","rootField":"sapS4","sdl":"/api/graphql?sdl","example":"{ sapS4 { PurchaseOrders(limit: 5) { __typename } } }","auth":"Basic Auth (same credentials as REST) — or gateway Bearer token"},"events":{"method":"GET","url":"/api/kafka?topic=lucie.sap-s4.purchase-order&offset=0&limit=50","topics":["lucie.sap-s4.purchase-order","lucie.sap-s4.supplier","lucie.sap-s4.material"],"format":"Kafka-like JSON messages; value = CloudEvents 1.0 (format=cloudevents for a CloudEvents batch)","auth":"Basic Auth (same credentials as REST) — or gateway Bearer token"},"file":{"method":"GET","url":"/api/files/sap-s4.csv","tableUrls":["/api/files/sap-s4.PurchaseOrder.csv","/api/files/sap-s4.Supplier.csv","/api/files/sap-s4.Material.csv"],"format":"text/csv","auth":"Basic Auth (same credentials as REST) — or gateway Bearer token, or X-API-Key files key"},"batch":{"method":"POST","url":"/api/batch","body":{"app":"sap-s4","table":"PurchaseOrder","format":"ndjson|csv","filter":{}},"statusUrl":"/api/batch?job={jobId}","resultUrl":"/api/batch?job={jobId}&result=1","format":"application/x-ndjson or text/csv","auth":"Basic Auth (same credentials as REST) — or gateway Bearer token"}}},{"id":"manhattan-wms","name":"Lucie Active Warehouse","marketReference":"Manhattan Active WM","role":"Inventory, reservations and safety stock","protocol":"REST + inventory events","baseUrl":"/api/data/manhattan-wms","auth":{"type":"API Key","credentialFields":["header","apiKey"],"secretDelivery":"Studio-configured demo profile"},"refresh":"Events + 5 min reconciliation","status":"AVAILABLE","disclaimer":"Synthetic emulator; not affiliated with Manhattan Associates.","config":{"id":"manhattan-wms","endpoint":"/api/data/manhattan-wms","protocol":"REST + inventory events","refresh":"Events + 5 min reconciliation","enabled":true,"auth":{"type":"API Key","header":"x-api-key","apiKey":"lucie_wms_demo_key"},"updatedAt":null,"syntheticCredentials":true},"tables":["InventoryPosition","Site"],"protocols":{"rest":{"method":"GET","url":"/api/data/manhattan-wms","tableUrl":"/api/data/manhattan-wms?table={table}","format":"application/json","auth":"API Key"},"soap":{"method":"POST","url":"/api/soap?app=manhattan-wms","wsdl":"/api/soap?wsdl&app=manhattan-wms","operations":["GetInventoryPositions","GetSites","GetRecords"],"format":"text/xml (SOAP 1.1)","auth":"API Key (same credentials as REST) — or gateway Bearer token"},"graphql":{"method":"POST","url":"/api/graphql","rootField":"manhattanWms","sdl":"/api/graphql?sdl","example":"{ manhattanWms { InventoryPositions(limit: 5) { __typename } } }","auth":"API Key (same credentials as REST) — or gateway Bearer token"},"events":{"method":"GET","url":"/api/kafka?topic=lucie.manhattan-wms.inventory-position&offset=0&limit=50","topics":["lucie.manhattan-wms.inventory-position","lucie.manhattan-wms.site"],"format":"Kafka-like JSON messages; value = CloudEvents 1.0 (format=cloudevents for a CloudEvents batch)","auth":"API Key (same credentials as REST) — or gateway Bearer token"},"file":{"method":"GET","url":"/api/files/manhattan-wms.csv","tableUrls":["/api/files/manhattan-wms.InventoryPosition.csv","/api/files/manhattan-wms.Site.csv"],"format":"text/csv","auth":"API Key (same credentials as REST) — or gateway Bearer token, or X-API-Key files key"},"batch":{"method":"POST","url":"/api/batch","body":{"app":"manhattan-wms","table":"InventoryPosition","format":"ndjson|csv","filter":{}},"statusUrl":"/api/batch?job={jobId}","resultUrl":"/api/batch?job={jobId}&result=1","format":"application/x-ndjson or text/csv","auth":"API Key (same credentials as REST) — or gateway Bearer token"}}},{"id":"blueyonder-tms","name":"Lucie Luminate Transport","marketReference":"Blue Yonder Transportation Management","role":"Shipments, ETA, carriers and disruptions","protocol":"REST + webhook","baseUrl":"/api/data/blueyonder-tms","auth":{"type":"OAuth 2.0 Client Credentials","credentialFields":["clientId","clientSecret","tokenUrl"],"secretDelivery":"Studio-configured demo profile"},"refresh":"Webhook + every 10 min","status":"AVAILABLE","disclaimer":"Synthetic emulator; not affiliated with Blue Yonder.","config":{"id":"blueyonder-tms","endpoint":"/api/data/blueyonder-tms","protocol":"REST + webhook","refresh":"Webhook + every 10 min","enabled":true,"auth":{"type":"OAuth 2.0 Client Credentials","clientId":"aura-lucie-demo","clientSecret":"DEMO-NOT-A-SECRET","tokenUrl":"/api/token"},"updatedAt":null,"syntheticCredentials":true},"tables":["Shipment","Disruption"],"protocols":{"rest":{"method":"GET","url":"/api/data/blueyonder-tms","tableUrl":"/api/data/blueyonder-tms?table={table}","format":"application/json","auth":"OAuth 2.0 Client Credentials"},"soap":{"method":"POST","url":"/api/soap?app=blueyonder-tms","wsdl":"/api/soap?wsdl&app=blueyonder-tms","operations":["GetShipments","GetDisruptions","GetRecords"],"format":"text/xml (SOAP 1.1)","auth":"OAuth 2.0 Client Credentials (same credentials as REST) — or gateway Bearer token"},"graphql":{"method":"POST","url":"/api/graphql","rootField":"blueyonderTms","sdl":"/api/graphql?sdl","example":"{ blueyonderTms { Shipments(limit: 5) { __typename } } }","auth":"OAuth 2.0 Client Credentials (same credentials as REST) — or gateway Bearer token"},"events":{"method":"GET","url":"/api/kafka?topic=lucie.blueyonder-tms.shipment&offset=0&limit=50","topics":["lucie.blueyonder-tms.shipment","lucie.blueyonder-tms.disruption"],"format":"Kafka-like JSON messages; value = CloudEvents 1.0 (format=cloudevents for a CloudEvents batch)","auth":"OAuth 2.0 Client Credentials (same credentials as REST) — or gateway Bearer token"},"file":{"method":"GET","url":"/api/files/blueyonder-tms.csv","tableUrls":["/api/files/blueyonder-tms.Shipment.csv","/api/files/blueyonder-tms.Disruption.csv"],"format":"text/csv","auth":"OAuth 2.0 Client Credentials (same credentials as REST) — or gateway Bearer token, or X-API-Key files key"},"batch":{"method":"POST","url":"/api/batch","body":{"app":"blueyonder-tms","table":"Shipment","format":"ndjson|csv","filter":{}},"statusUrl":"/api/batch?job={jobId}","resultUrl":"/api/batch?job={jobId}&result=1","format":"application/x-ndjson or text/csv","auth":"OAuth 2.0 Client Credentials (same credentials as REST) — or gateway Bearer token"}}},{"id":"coupa-risk","name":"Lucie SpendGuard","marketReference":"Coupa Supplier Risk","role":"Supplier financial, country, quality and capacity risk","protocol":"GraphQL-like query endpoint","baseUrl":"/api/data/coupa-risk","auth":{"type":"Bearer token","credentialFields":["token"],"secretDelivery":"Studio-configured demo profile"},"refresh":"Daily + event on material change","status":"AVAILABLE","disclaimer":"Synthetic emulator; not affiliated with Coupa.","config":{"id":"coupa-risk","endpoint":"/api/data/coupa-risk","protocol":"GraphQL-like query endpoint","refresh":"Daily + event on material change","enabled":true,"auth":{"type":"Bearer token","token":"lucie_demo_bearer_token"},"updatedAt":null,"syntheticCredentials":true},"tables":["SupplierRiskAssessment","SupplierScorecard"],"protocols":{"rest":{"method":"GET","url":"/api/data/coupa-risk","tableUrl":"/api/data/coupa-risk?table={table}","format":"application/json","auth":"Bearer token"},"soap":{"method":"POST","url":"/api/soap?app=coupa-risk","wsdl":"/api/soap?wsdl&app=coupa-risk","operations":["GetSupplierRiskAssessments","GetSupplierScorecards","GetRecords"],"format":"text/xml (SOAP 1.1)","auth":"Bearer token (same credentials as REST) — or gateway Bearer token"},"graphql":{"method":"POST","url":"/api/graphql","rootField":"coupaRisk","sdl":"/api/graphql?sdl","example":"{ coupaRisk { SupplierRiskAssessments(limit: 5) { __typename } } }","auth":"Bearer token (same credentials as REST) — or gateway Bearer token"},"events":{"method":"GET","url":"/api/kafka?topic=lucie.coupa-risk.supplier-risk-assessment&offset=0&limit=50","topics":["lucie.coupa-risk.supplier-risk-assessment","lucie.coupa-risk.supplier-scorecard"],"format":"Kafka-like JSON messages; value = CloudEvents 1.0 (format=cloudevents for a CloudEvents batch)","auth":"Bearer token (same credentials as REST) — or gateway Bearer token"},"file":{"method":"GET","url":"/api/files/coupa-risk.csv","tableUrls":["/api/files/coupa-risk.SupplierRiskAssessment.csv","/api/files/coupa-risk.SupplierScorecard.csv"],"format":"text/csv","auth":"Bearer token (same credentials as REST) — or gateway Bearer token, or X-API-Key files key"},"batch":{"method":"POST","url":"/api/batch","body":{"app":"coupa-risk","table":"SupplierRiskAssessment","format":"ndjson|csv","filter":{}},"statusUrl":"/api/batch?job={jobId}","resultUrl":"/api/batch?job={jobId}&result=1","format":"application/x-ndjson or text/csv","auth":"Bearer token (same credentials as REST) — or gateway Bearer token"}}},{"id":"snowflake-demand","name":"Lucie Data Cloud","marketReference":"Snowflake","role":"Demand forecast, margin and sales history","protocol":"SQL API-like + CSV export","baseUrl":"/api/data/snowflake-demand","auth":{"type":"Key pair","credentialFields":["account","warehouse","role","privateKey"],"secretDelivery":"Studio-configured demo profile"},"refresh":"Nightly batch","status":"AVAILABLE","disclaimer":"Synthetic emulator; not affiliated with Snowflake.","config":{"id":"snowflake-demand","endpoint":"/api/data/snowflake-demand","protocol":"SQL API-like + CSV export","refresh":"Nightly batch","enabled":true,"auth":{"type":"Key pair","account":"lucie-demo.eu-west","warehouse":"AURA_DEMO_WH","role":"AURA_READER","privateKey":"DEMO-KEY-NOT-USABLE"},"updatedAt":null,"syntheticCredentials":true},"tables":["DemandForecast","Promotion"],"protocols":{"rest":{"method":"GET","url":"/api/data/snowflake-demand","tableUrl":"/api/data/snowflake-demand?table={table}","format":"application/json","auth":"Key pair"},"soap":{"method":"POST","url":"/api/soap?app=snowflake-demand","wsdl":"/api/soap?wsdl&app=snowflake-demand","operations":["GetDemandForecasts","GetPromotions","GetRecords"],"format":"text/xml (SOAP 1.1)","auth":"Key pair (same credentials as REST) — or gateway Bearer token"},"graphql":{"method":"POST","url":"/api/graphql","rootField":"snowflakeDemand","sdl":"/api/graphql?sdl","example":"{ snowflakeDemand { DemandForecasts(limit: 5) { __typename } } }","auth":"Key pair (same credentials as REST) — or gateway Bearer token"},"events":{"method":"GET","url":"/api/kafka?topic=lucie.snowflake-demand.demand-forecast&offset=0&limit=50","topics":["lucie.snowflake-demand.demand-forecast","lucie.snowflake-demand.promotion"],"format":"Kafka-like JSON messages; value = CloudEvents 1.0 (format=cloudevents for a CloudEvents batch)","auth":"Key pair (same credentials as REST) — or gateway Bearer token"},"file":{"method":"GET","url":"/api/files/snowflake-demand.csv","tableUrls":["/api/files/snowflake-demand.DemandForecast.csv","/api/files/snowflake-demand.Promotion.csv"],"format":"text/csv","auth":"Key pair (same credentials as REST) — or gateway Bearer token, or X-API-Key files key"},"batch":{"method":"POST","url":"/api/batch","body":{"app":"snowflake-demand","table":"DemandForecast","format":"ndjson|csv","filter":{}},"statusUrl":"/api/batch?job={jobId}","resultUrl":"/api/batch?job={jobId}&result=1","format":"application/x-ndjson or text/csv","auth":"Key pair (same credentials as REST) — or gateway Bearer token"}}},{"id":"mulesoft-events","name":"Lucie Anypoint Hub","marketReference":"MuleSoft / Kafka patterns","role":"Business events and integration observability","protocol":"CloudEvents over HTTP","baseUrl":"/api/data/mulesoft-events","auth":{"type":"Client ID enforcement","credentialFields":["clientId","clientSecret"],"secretDelivery":"Studio-configured demo profile"},"refresh":"Near real time","status":"AVAILABLE","disclaimer":"Synthetic emulator inspired by common integration patterns; no vendor runtime is embedded.","config":{"id":"mulesoft-events","endpoint":"/api/data/mulesoft-events","protocol":"CloudEvents over HTTP","refresh":"Near real time","enabled":true,"auth":{"type":"Client ID enforcement","clientId":"aura-demo-client","clientSecret":"DEMO-ONLY"},"updatedAt":null,"syntheticCredentials":true},"tables":["CloudEvent"],"protocols":{"rest":{"method":"GET","url":"/api/data/mulesoft-events","tableUrl":"/api/data/mulesoft-events?table={table}","format":"application/json","auth":"Client ID enforcement"},"soap":{"method":"POST","url":"/api/soap?app=mulesoft-events","wsdl":"/api/soap?wsdl&app=mulesoft-events","operations":["GetCloudEvents","GetRecords"],"format":"text/xml (SOAP 1.1)","auth":"Client ID enforcement (same credentials as REST) — or gateway Bearer token"},"graphql":{"method":"POST","url":"/api/graphql","rootField":"mulesoftEvents","sdl":"/api/graphql?sdl","example":"{ mulesoftEvents { CloudEvents(limit: 5) { __typename } } }","auth":"Client ID enforcement (same credentials as REST) — or gateway Bearer token"},"events":{"method":"GET","url":"/api/kafka?topic=lucie.mulesoft-events.cloud-event&offset=0&limit=50","topics":["lucie.mulesoft-events.cloud-event"],"format":"Kafka-like JSON messages; value = CloudEvents 1.0 (format=cloudevents for a CloudEvents batch)","auth":"Client ID enforcement (same credentials as REST) — or gateway Bearer token"},"file":{"method":"GET","url":"/api/files/mulesoft-events.csv","tableUrls":["/api/files/mulesoft-events.CloudEvent.csv"],"format":"text/csv","auth":"Client ID enforcement (same credentials as REST) — or gateway Bearer token, or X-API-Key files key"},"batch":{"method":"POST","url":"/api/batch","body":{"app":"mulesoft-events","table":"CloudEvent","format":"ndjson|csv","filter":{}},"statusUrl":"/api/batch?job={jobId}","resultUrl":"/api/batch?job={jobId}&result=1","format":"application/x-ndjson or text/csv","auth":"Client ID enforcement (same credentials as REST) — or gateway Bearer token"}}},{"id":"rest-order-management","name":"Lucie Fusion Order Cloud","marketReference":"Oracle Fusion Cloud Order Management-inspired","role":"REST order orchestration","protocol":"REST API","baseUrl":"/api/data/rest-order-management","auth":{"type":"Bearer token","credentialFields":["token"],"secretDelivery":"Studio-configured demo profile"},"refresh":"On demand","status":"AVAILABLE","disclaimer":"Synthetic REST API emulator.","config":{"id":"rest-order-management","endpoint":"/api/data/rest-order-management","protocol":"REST API","refresh":"On demand","enabled":true,"auth":{"type":"Bearer token","token":"lucie_rest_demo_token"},"updatedAt":null,"syntheticCredentials":true},"tables":["CustomerOrder"],"protocols":{"rest":{"method":"GET","url":"/api/data/rest-order-management","tableUrl":"/api/data/rest-order-management?table={table}","format":"application/json","auth":"Bearer token"},"soap":{"method":"POST","url":"/api/soap?app=rest-order-management","wsdl":"/api/soap?wsdl&app=rest-order-management","operations":["GetCustomerOrders","GetRecords"],"format":"text/xml (SOAP 1.1)","auth":"Bearer token (same credentials as REST) — or gateway Bearer token"},"graphql":{"method":"POST","url":"/api/graphql","rootField":"restOrderManagement","sdl":"/api/graphql?sdl","example":"{ restOrderManagement { CustomerOrders(limit: 5) { __typename } } }","auth":"Bearer token (same credentials as REST) — or gateway Bearer token"},"events":{"method":"GET","url":"/api/kafka?topic=lucie.rest-order-management.customer-order&offset=0&limit=50","topics":["lucie.rest-order-management.customer-order"],"format":"Kafka-like JSON messages; value = CloudEvents 1.0 (format=cloudevents for a CloudEvents batch)","auth":"Bearer token (same credentials as REST) — or gateway Bearer token"},"file":{"method":"GET","url":"/api/files/rest-order-management.csv","tableUrls":["/api/files/rest-order-management.CustomerOrder.csv"],"format":"text/csv","auth":"Bearer token (same credentials as REST) — or gateway Bearer token, or X-API-Key files key"},"batch":{"method":"POST","url":"/api/batch","body":{"app":"rest-order-management","table":"CustomerOrder","format":"ndjson|csv","filter":{}},"statusUrl":"/api/batch?job={jobId}","resultUrl":"/api/batch?job={jobId}&result=1","format":"application/x-ndjson or text/csv","auth":"Bearer token (same credentials as REST) — or gateway Bearer token"}}},{"id":"kafka-stream","name":"Lucie Confluent Stream","marketReference":"Confluent Cloud / Apache Kafka-inspired","role":"Publish and consume supply-chain events","protocol":"Kafka-compatible HTTP bridge","baseUrl":"/api/kafka","auth":{"type":"Client ID enforcement","credentialFields":["clientId","clientSecret"],"secretDelivery":"Studio-configured demo profile"},"refresh":"Near real time","status":"AVAILABLE","disclaimer":"HTTP bridge for a Kafka-shaped contract; no broker is embedded in Vercel.","config":{"id":"kafka-stream","endpoint":"/api/kafka","protocol":"Kafka-compatible HTTP bridge","refresh":"Near real time","enabled":true,"auth":{"type":"Client ID enforcement","clientId":"aura-demo-client","clientSecret":"DEMO-ONLY"},"updatedAt":null,"syntheticCredentials":true},"tables":["KafkaMessage"],"protocols":{"rest":{"method":"GET","url":"/api/data/kafka-stream","tableUrl":"/api/data/kafka-stream?table={table}","format":"application/json","auth":"Client ID enforcement"},"soap":{"method":"POST","url":"/api/soap?app=kafka-stream","wsdl":"/api/soap?wsdl&app=kafka-stream","operations":["GetKafkaMessages","GetRecords"],"format":"text/xml (SOAP 1.1)","auth":"Client ID enforcement (same credentials as REST) — or gateway Bearer token"},"graphql":{"method":"POST","url":"/api/graphql","rootField":"kafkaStream","sdl":"/api/graphql?sdl","example":"{ kafkaStream { KafkaMessages(limit: 5) { __typename } } }","auth":"Client ID enforcement (same credentials as REST) — or gateway Bearer token"},"events":{"method":"GET","url":"/api/kafka?topic=lucie.kafka-stream.kafka-message&offset=0&limit=50","topics":["lucie.kafka-stream.kafka-message"],"format":"Kafka-like JSON messages; value = CloudEvents 1.0 (format=cloudevents for a CloudEvents batch)","auth":"Client ID enforcement (same credentials as REST) — or gateway Bearer token"},"file":{"method":"GET","url":"/api/files/kafka-stream.csv","tableUrls":["/api/files/kafka-stream.KafkaMessage.csv"],"format":"text/csv","auth":"Client ID enforcement (same credentials as REST) — or gateway Bearer token, or X-API-Key files key"},"batch":{"method":"POST","url":"/api/batch","body":{"app":"kafka-stream","table":"KafkaMessage","format":"ndjson|csv","filter":{}},"statusUrl":"/api/batch?job={jobId}","resultUrl":"/api/batch?job={jobId}&result=1","format":"application/x-ndjson or text/csv","auth":"Client ID enforcement (same credentials as REST) — or gateway Bearer token"}}},{"id":"legacy-soap","name":"Lucie ECC Bridge","marketReference":"SAP ECC / SOAP-inspired","role":"Purchase-order interoperability","protocol":"SOAP 1.1","baseUrl":"/api/soap","auth":{"type":"Basic Auth","credentialFields":["username","password","tenant"],"secretDelivery":"Studio-configured demo profile"},"refresh":"On demand","status":"AVAILABLE","disclaimer":"Synthetic SOAP 1.1 emulator with WSDL discovery.","config":{"id":"legacy-soap","endpoint":"/api/soap","protocol":"SOAP 1.1","refresh":"On demand","enabled":true,"auth":{"type":"Basic Auth","username":"aura_demo","password":"LUCIE-DEMO-ONLY","tenant":"lucie-fr-100"},"updatedAt":null,"syntheticCredentials":true},"tables":["SoapOperation"],"protocols":{"rest":{"method":"GET","url":"/api/data/legacy-soap","tableUrl":"/api/data/legacy-soap?table={table}","format":"application/json","auth":"Basic Auth"},"soap":{"method":"POST","url":"/api/soap?app=legacy-soap","wsdl":"/api/soap?wsdl&app=legacy-soap","operations":["GetSoapOperations","GetRecords"],"format":"text/xml (SOAP 1.1)","auth":"Basic Auth (same credentials as REST) — or gateway Bearer token"},"graphql":{"method":"POST","url":"/api/graphql","rootField":"legacySoap","sdl":"/api/graphql?sdl","example":"{ legacySoap { SoapOperations(limit: 5) { __typename } } }","auth":"Basic Auth (same credentials as REST) — or gateway Bearer token"},"events":{"method":"GET","url":"/api/kafka?topic=lucie.legacy-soap.soap-operation&offset=0&limit=50","topics":["lucie.legacy-soap.soap-operation"],"format":"Kafka-like JSON messages; value = CloudEvents 1.0 (format=cloudevents for a CloudEvents batch)","auth":"Basic Auth (same credentials as REST) — or gateway Bearer token"},"file":{"method":"GET","url":"/api/files/legacy-soap.csv","tableUrls":["/api/files/legacy-soap.SoapOperation.csv"],"format":"text/csv","auth":"Basic Auth (same credentials as REST) — or gateway Bearer token, or X-API-Key files key"},"batch":{"method":"POST","url":"/api/batch","body":{"app":"legacy-soap","table":"SoapOperation","format":"ndjson|csv","filter":{}},"statusUrl":"/api/batch?job={jobId}","resultUrl":"/api/batch?job={jobId}&result=1","format":"application/x-ndjson or text/csv","auth":"Basic Auth (same credentials as REST) — or gateway Bearer token"}}},{"id":"webhook-gateway","name":"Lucie Integration Webhooks","marketReference":"Boomi / MuleSoft webhook patterns","role":"Inbound business-event delivery","protocol":"Webhook over HTTPS","baseUrl":"/api/webhooks","auth":{"type":"Client ID enforcement","credentialFields":["clientId","clientSecret"],"secretDelivery":"Studio-configured demo profile"},"refresh":"Near real time","status":"AVAILABLE","disclaimer":"Synthetic webhook receiver with delivery persistence.","config":{"id":"webhook-gateway","endpoint":"/api/webhooks","protocol":"Webhook over HTTPS","refresh":"Near real time","enabled":true,"auth":{"type":"Client ID enforcement","clientId":"aura-demo-client","clientSecret":"DEMO-ONLY"},"updatedAt":null,"syntheticCredentials":true},"tables":["WebhookDelivery"],"protocols":{"rest":{"method":"GET","url":"/api/data/webhook-gateway","tableUrl":"/api/data/webhook-gateway?table={table}","format":"application/json","auth":"Client ID enforcement"},"soap":{"method":"POST","url":"/api/soap?app=webhook-gateway","wsdl":"/api/soap?wsdl&app=webhook-gateway","operations":["GetWebhookDeliveries","GetRecords"],"format":"text/xml (SOAP 1.1)","auth":"Client ID enforcement (same credentials as REST) — or gateway Bearer token"},"graphql":{"method":"POST","url":"/api/graphql","rootField":"webhookGateway","sdl":"/api/graphql?sdl","example":"{ webhookGateway { WebhookDeliveries(limit: 5) { __typename } } }","auth":"Client ID enforcement (same credentials as REST) — or gateway Bearer token"},"events":{"method":"GET","url":"/api/kafka?topic=lucie.webhook-gateway.webhook-delivery&offset=0&limit=50","topics":["lucie.webhook-gateway.webhook-delivery"],"format":"Kafka-like JSON messages; value = CloudEvents 1.0 (format=cloudevents for a CloudEvents batch)","auth":"Client ID enforcement (same credentials as REST) — or gateway Bearer token"},"file":{"method":"GET","url":"/api/files/webhook-gateway.csv","tableUrls":["/api/files/webhook-gateway.WebhookDelivery.csv"],"format":"text/csv","auth":"Client ID enforcement (same credentials as REST) — or gateway Bearer token, or X-API-Key files key"},"batch":{"method":"POST","url":"/api/batch","body":{"app":"webhook-gateway","table":"WebhookDelivery","format":"ndjson|csv","filter":{}},"statusUrl":"/api/batch?job={jobId}","resultUrl":"/api/batch?job={jobId}&result=1","format":"application/x-ndjson or text/csv","auth":"Client ID enforcement (same credentials as REST) — or gateway Bearer token"}}}],"audit":[],"contracts":{"alerts":"/api/alerts","events":"/api/events","files":["/api/files/demand-forecast.csv","/api/files/supplier-scorecard.csv"],"filesIndex":"/api/files/index.json","graphql":"/api/graphql","graphqlSdl":"/api/graphql?sdl","soap":"/api/soap","wsdl":"/api/soap?wsdl","kafka":"/api/kafka","kafkaTopics":"/api/kafka?topics","batch":"/api/batch","webhooks":"/api/webhooks","token":"/api/token","openapi":"/api/openapi","configuration":"/api/catalog","channels":"/channels","mcp":"/mcp"}}