arazzo: 1.0.1 info: title: Oracle GoldenGate Validate Credential Then Create Extract summary: Create a credential alias, validate it can connect, and create an Extract that uses it. description: >- Ensures an Extract is only created against a credential that actually works. It registers a credential alias, validates that the alias can connect to its target, and branches: when valid it creates an Extract bound to the alias, and when invalid it ends without creating the process. Every step spells out its request inline so the flow can be read and executed without opening the underlying OpenAPI description. version: 1.0.0 sourceDescriptions: - name: goldengateApi url: ../openapi/oracle-goldengate-rest-api-openapi.yml type: openapi workflows: - workflowId: validate-credential-then-extract summary: Create and validate a credential alias before creating an Extract that references it. description: >- Creates a credential alias, validates it, and only creates the Extract when the alias is confirmed valid. inputs: type: object required: - authorization - domain - alias - userid - password - extract - trail - config properties: authorization: type: string description: HTTP Basic Authorization header value. domain: type: string description: Credential store domain name. alias: type: string description: Credential alias to create and validate. userid: type: string description: Database user ID including connect string. password: type: string description: Password for the database user. extract: type: string description: Name of the Extract process to create. trail: type: string description: Trail file prefix the Extract writes to. config: type: array items: type: string description: Extract parameter file content lines. steps: - stepId: createCredential description: Create the credential alias in the supplied domain. operationId: createCredentialAlias parameters: - name: Authorization in: header value: $inputs.authorization - name: domain in: path value: $inputs.domain - name: alias in: path value: $inputs.alias requestBody: contentType: application/json payload: userid: $inputs.userid password: $inputs.password successCriteria: - condition: $statusCode == 201 outputs: credentialAlias: $response.body#/alias - stepId: validateCredential description: >- Validate the credential alias can connect, branching to create the Extract only when the result is valid. operationId: validateCredentialAlias parameters: - name: Authorization in: header value: $inputs.authorization - name: domain in: path value: $inputs.domain - name: alias in: path value: $inputs.alias successCriteria: - condition: $statusCode == 200 outputs: valid: $response.body#/valid message: $response.body#/message onSuccess: - name: credentialValid type: goto stepId: createExtract criteria: - context: $response.body condition: $.valid == true type: jsonpath - name: credentialInvalid type: end criteria: - context: $response.body condition: $.valid == false type: jsonpath - stepId: createExtract description: Create a CDC Extract bound to the validated credential alias. operationId: createExtract parameters: - name: Authorization in: header value: $inputs.authorization - name: extract in: path value: $inputs.extract requestBody: contentType: application/json payload: type: cdc trail: $inputs.trail config: $inputs.config credentials: domain: $inputs.domain alias: $inputs.alias successCriteria: - condition: $statusCode == 201 outputs: extractName: $response.body#/name extractStatus: $response.body#/status outputs: credentialValid: $steps.validateCredential.outputs.valid extractName: $steps.createExtract.outputs.extractName