### Start ADDI Local Analysis Container Example (Podman) Source: https://www.ibm.com/docs/en/addi/6.1_topic=container-deploying-addi-local-analysis-podman An example command to start the ADDI Local Analysis container using Podman, specifying port mappings and a container name. ```bash podman run -it -p 5000:5000 -p 4680:4680 --name ADDI_LOCAL addilocal:2025.1.0 ``` -------------------------------- ### Start Wazi Analyze Container Example (Podman) Source: https://www.ibm.com/docs/en/addi/6.1_topic=container-deploying-wazi-analyze-podman This is an example command to start the Wazi Analyze container, specifying port mappings and the image with a build ID. It serves as a template for launching the container. ```shell podman run -it -p 5000:5000 -p 4680:4680 --name wa ibmcom/wazianalyze: ``` -------------------------------- ### Start Docker Container using Command Line Source: https://www.ibm.com/docs/en/addi/6.1_topic=abcm-iayaa0044e This snippet demonstrates how to start a Docker container from the command line. It requires the Docker Engine to be installed and accessible. The input is the container name, and the output is the container starting. ```bash docker start ``` ```bash docker start WaziAnalyze ``` -------------------------------- ### Example Promotion Routes Configuration File Source: https://www.ibm.com/docs/en/addi/6.1_topic=configuration-configuring-zos-connection This example demonstrates various promotion route definitions, illustrating transitions between development, quality assurance, and production environments and stages. It covers different starting points and their subsequent destinations. ```text [DEV1,UNIT,SYS1,SUBSYS1]:[DEV1,INT,SYS1,SUBSYS1] [DEV1,INT,SYS1,SUBSYS1]:[QA,QA,SYS1,SUBSYS1] [QA,QA,SYS1,SUBSYS1]:[QA,HOLD,SYS1,SUBSYS1] [QA,HOLD,SYS1,SUBSYS1]:[PROD,PROD,SYS1,SUBSYS1] [DEV2,UNIT,SYS1,SUBSYS1]:[DEV2,INT,SYS1,SUBSYS1] [DEV2,INT,SYS1,SUBSYS1]:[QA,QA,SYS1,SUBSYS1] [DEV3,UNIT,SYS1,SUBSYS1]:[DEV3,INT,SYS1,SUBSYS1] [DEV3,INT,SYS1,SUBSYS1]:[QA,QA,SYS1,SUBSYS1] [QFIX,TSTFIX,SYS1,SUBSYS1]:[QFIX,PREPROD,SYS1,SUBSYS1] [QFIX,PREPROD,SYS1,SUBSYS1]:[PROD,PROD,SYS1,SUBSYS1] ``` -------------------------------- ### Navigate to Server Directory Source: https://www.ibm.com/docs/en/addi/6.1_topic=administration-starting-up-server Changes the current directory to the server directory within the ADDI Extensions folder. This is a prerequisite for starting the server. It requires the user to know the installation path of the ADDI Extensions. ```shell cd /adi611/server ``` -------------------------------- ### Start Docker Service Source: https://www.ibm.com/docs/en/addi/6.1_topic=container-deploying-wazi-analyze-docker Starts the Docker daemon on a Linux system. This command requires root privileges. Ensure Docker is installed before running this command. ```bash sudo systemctl start docker ``` -------------------------------- ### Local File System Synchronization Example (With Wildcard Filter) Source: https://www.ibm.com/docs/en/addi/6.1_topic=samples-synchronize-members-configuration-file-examples Example of a configuration line for local file system synchronization using wildcard filters for file selection, synchronizing files based on starting or ending characters. ```text , LOCAL_REMOTE, , , , filter<(a*|*b> ``` -------------------------------- ### Concurrent Project Builds - Batch Script Example Source: https://www.ibm.com/docs/en/addi/6.1_topic=commands-description-addi-build-client-batch A batch script example demonstrating how to run multiple IBM Application Discovery Build Client instances concurrently for building multiple projects in parallel. It uses the 'start /b' command to launch instances and 'TIMEOUT' to introduce delays between them, preventing resource contention. ```batch start /b "" "C:\Program Files\IBM Application Discovery and Delivery Intelligence\IBM Application Discovery Build Client\Bin\Release\IBMApplicationDiscoveryBuildClient.exe" /fb MyProject1 TIMEOUT 1 start /b "" "C:\Program Files\IBM Application Discovery and Delivery Intelligence\IBM Application Discovery Build Client\Bin\Release\IBMApplicationDiscoveryBuildClient.exe" /fb MyProject2 TIMEOUT 1 start /b "" "C:\Program Files\IBM Application Discovery and Delivery Intelligence\IBM Application Discovery Build Client\Bin\Release\IBMApplicationDiscoveryBuildClient.exe" /fb MyProject3 TIMEOUT 1 ``` -------------------------------- ### List WSL Distributions with Podman Source: https://www.ibm.com/docs/en/addi/6.1_topic=container-deploying-addi-local-analysis-podman Lists all installed Windows Subsystem for Linux (WSL) distributions. This command is a prerequisite for starting a specific Linux distribution for Podman. ```bash wsl -l -v ``` -------------------------------- ### Start Podman Machine (Podman) Source: https://www.ibm.com/docs/en/addi/6.1_topic=container-deploying-addi-local-analysis-podman This command initiates the Podman machine, which is necessary to run Podman containers on a Mac. Ensure Podman is installed before executing this command. ```bash podman machine start ``` -------------------------------- ### adi-setup Script Help and Core Commands Source: https://www.ibm.com/docs/en/addi/6.1_topic=script-references-adi-setup Displays general help information for the adi-setup script and lists the primary commands available. This is the entry point for understanding the script's capabilities. ```bash adi-setup help -- Get this information. adi-setup addiConfigurationServer -- Run automated setup using an ADDI Configuration Server di-setup migration -- Run a migration from a previous build. adi-setup bcryptPassword -- Generates the bcrypt hash of the password as expected by the Dex configuration file. adi-setup encodePassword -- Encodes a string into the format expected by the ADI teamserver.properties files as well as data collection application properties file. ``` -------------------------------- ### Sample Java Graph API Request Source: https://www.ibm.com/docs/en/addi/6.1_topic=guide-using-wazi-analyze-apis An example GraphQL query for the Java Graph API to retrieve call relationships for a specific method in a Java project. It specifies project, package, class, and method names. ```GraphQL //Retrieve graph for package with name `com.ibm.db.conversion`, class `VerifyMigration`, method `main` in project `SampleJava` { javaGraph (projectId:"SampleJava" packageName:"com.ibm.db.conversion" methodName:"main" className:"VerifyMigration") { id type label nodes edges { source target relation } } } ``` -------------------------------- ### Sample authorizeProvider Mutation Request Source: https://www.ibm.com/docs/en/addi/6.1_topic=guide-using-wazi-analyze-apis A sample GraphQL mutation request demonstrating how to call the authorizeProvider function. It includes example values for providerType, username, password, and client_secret, and specifies the desired output fields for the authorization token. ```graphql mutation { authorizeProvider ( providerType:"APPLICATION_DISCOVERY_SERVER" username:"me@example.com" password:"userPassw0rd" client_secret:"password" ) { access_token token_type expires_in refresh_token id_token } } ``` -------------------------------- ### Start the Server Source: https://www.ibm.com/docs/en/addi/6.1_topic=administration-starting-up-server Executes the server startup script to initiate the server process. This command should be run from the server directory after navigating to it. ```shell server.startup ``` -------------------------------- ### GraphQL Error Response Example (JSON) Source: https://www.ibm.com/docs/en/addi/6.1_topic=guide-using-wazi-analyze-apis Illustrates the structure of a GraphQL response body when data authorization errors occur. The response includes an 'errors' array containing details about the authorization failure, and a 'data' field which is null for the affected query path. ```json { "errors":[ { "message": "Authorization failed. Token is not authorized.", "locations":[ {"line": 1, "column": 2} ], "path":[ "graph" ] } ], "data":{ graph": null } } ``` -------------------------------- ### Start WSL Distribution with Podman Source: https://www.ibm.com/docs/en/addi/6.1_topic=container-deploying-addi-local-analysis-podman Starts a specified Windows Subsystem for Linux (WSL) distribution. Replace `` with the actual name of your WSL distribution. ```bash wsl --distribution ``` -------------------------------- ### adi-setup migration Command Options Source: https://www.ibm.com/docs/en/addi/6.1_topic=script-references-adi-setup Facilitates migration from a previous build of IBM ADDI Extensions. It requires the source directory and supports verbose output for detailed logging. ```bash adi-setup migration -- Run a migration from a previous build. -fromDir /opt/ibm/adi504 -- An absolute path to the location of the previous installation. The directory you specify needs to have a server child directory. [-verbose true] -- Switches on verbose output for all the operations performed. ``` -------------------------------- ### Starting AD Connect for Mainframe with JOBNAME Parameter (JCL) Source: https://www.ibm.com/docs/en/addi/6.1_topic=recommendations-securing-access-ad-connect-mainframe-endpoints This JCL example demonstrates how to start the IBM AD Connect for Mainframe started task with a specific job name using the MVS START command. This is used to test scenarios where the job name is not authorized to use the port, even if the user ID is. ```jcl S IAYV6020,JOBNAME=SW6020 ``` -------------------------------- ### GET /projects Source: https://www.ibm.com/docs/en/addi/6.1_topic=samples-ad-rest-api-example Retrieves a list of all available projects in the IBM ADDI system. This endpoint is useful for getting an overview of all managed projects. ```APIDOC ## GET /projects ### Description Get all projects. ### Method GET ### Endpoint /ws/projects ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```bash curl --user username:password https://{host}:{port}/ws/projects ``` ### Response #### Success Response (200) - **projects** (array) - An array of project objects. - **name** (string) - The name of the ADDI project. - **type** (string) - The type of the ADDI project (e.g., "mainframe"). - **uuid** (string) - The UUID of the ADDI project. - **defined** (integer) - The UNIX timestamp (in seconds) when the project was added. #### Response Example ```json { "projects": [ { "name": "zMobile", "type": "mainframe", "uuid": "zMobile", "defined": 1511983789 }, { "name": "SAMPLE-PROJECT", "type": "mainframe", "uuid": "SAMPLE-PROJECT", "defined": 1511983787 }, { "name": "JKEBank", "type": "mainframe", "uuid": "JKEBank", "defined": 1511983790 } ] } ``` ``` -------------------------------- ### Example Types List Files Source: https://www.ibm.com/docs/en/addi/6.1_topic=configuration-configuring-zos-connection These examples show different combinations of source code types that can be included in the Types List file, such as COBOL, JCL, COPYBOOK, MACRO, ASSEM, and PL1. ```text COBOL,JCL,COPYBOOK ``` ```text MACRO,JCL,ASSEM,PL1 ``` -------------------------------- ### GraphQL Introspection - Getting Details About a Specific Type Source: https://www.ibm.com/docs/en/addi/6.1_topic=guide-using-wazi-analyze-apis Retrieve detailed information about a specific type within the GraphQL schema by providing its name. ```APIDOC ## GraphQL Introspection - Getting Details About a Specific Type ### Description Use the `__type` query to get detailed information about a specific type in the GraphQL schema. You need to provide the `name` of the type. ### Method POST ### Endpoint `https://localhost:4680/azn-graphql/v1` ### Parameters #### Query Parameters None #### Request Body ```json { "query": "query {\n __type(name: \"AznProject\") {\n name\n kind\n description\n fields {\n name\n }\n }\n}" } ``` ### Request Example (cURL) ```bash curl -X POST -H "Content-Type: application/json" -d '{"query":"query { __type(name: \"AznProject\") { name kind description fields { name } } }"}' -k https://localhost:4680/azn-graphql/v1 ``` ### Response #### Success Response (200) - **data** (JSON) - **__type** (Object) - **name** (String) - The name of the type. - **kind** (String) - The kind of the type (e.g., OBJECT, SCALAR). - **description** (String) - A description of the type. - **fields** (Array of Objects) - Fields defined within the type. - **name** (String) - The name of the field. #### Response Example ```json { "data": { "__type": { "name": "AznProject", "kind": "OBJECT", "description": "Represents a generic project object.", "fields": [ { "name": "id" }, { "name": "type" }, { "name": "label" }, { "name": "metadata" } ] } } } ``` ``` -------------------------------- ### Start ADDI Local Analysis Container (Podman) Source: https://www.ibm.com/docs/en/addi/6.1_topic=container-deploying-addi-local-analysis-podman Starts the ADDI Local Analysis container with specified port mappings and a container name. Replace placeholders with your desired values. ```bash podman run -it -p 5000:5000 -p 4680:4680 --name : ``` -------------------------------- ### Project API - Retrieve a List of All Projects Source: https://www.ibm.com/docs/en/addi/6.1_topic=guide-using-wazi-analyze-apis Fetches a list of all available projects, returning their IDs and types. This is a basic query to get an overview of projects. ```APIDOC ## Project API - Retrieve a List of All Projects ### Description Retrieves a list of all project IDs and their types. This API is useful for getting a general overview of the projects available in the system. ### Method POST ### Endpoint `https://localhost:4680/azn-graphql/v1` ### Parameters #### Query Parameters None #### Request Body ```json { "query": "{ projects { id type } }" } ``` ### Request Example (cURL) ```bash curl -X POST -H "Authorization: bearer 0123456789" -H "Content-Type: application/json" -d '{"query":"query{projects {id type}}'}' -k https://localhost:4680/azn-graphql/v1 ``` ### Response #### Success Response (200) - **data** (JSON) - **projects** (Array of Objects) - **id** (String) - The unique identifier of the project. - **type** (String) - The type of the project. #### Response Example ```json { "data": { "projects": [ { "id": "GenAppC", "type": "project" }, { "id": "GenApp_dev", "type": "project" }, { "id": "GenApp_wrk", "type": "project" } ] } } ``` ``` -------------------------------- ### Configuration File Example with Hierarchical Options Source: https://www.ibm.com/docs/en/addi/6.1_topic=preprocessor-pli-configuration-file This example demonstrates a configuration file with settings organized by folder hierarchy. Options defined in subfolders override those in parent folders, illustrating a common pattern for managing configuration in a structured project. ```ini [PL1] source.encoding=UTF-8 opts.include=++INC opts.stringDelim={"} opts.extra.lower={@#$} opts.extra.upper={@#$} opts.margins.right=72 opts.margins.left=1 opts.margins=true vars.MODE=BATCH internal.ignored.member.files=MEMBER1;MEMBER2;MEMBER3 [PL1/Subfolder1] opts.include=--TST opts.stringDelim={%} vars.MODE=CICS [PL1/Subfolder1/Subfolder2] opts.margins.right=20 opts.margins.left=7 ``` -------------------------------- ### Start ADDI Local Analysis Server Source: https://www.ibm.com/docs/en/addi/6.1_topic=guide-configuring-additional-data-providers This command starts the ADDI Local Analysis server and requires a token key obtained from the z/OS DLA. Ensure the token is valid for successful server initialization. ```bash wa-startup.sh -d ``` -------------------------------- ### adi-setup addiConfigurationServer Command Options Source: https://www.ibm.com/docs/en/addi/6.1_topic=script-references-adi-setup Configures the ADDI Extensions setup using an ADDI Configuration Server. It requires the server URL and optionally accepts the database password. ```bash adi-setup addiConfigurationServer -- Run automated setup using an ADDI Configuration Server [-url https://server.org:443] -- Url to the ADDI Configuration Server. If not provided it will assume http://localhost:8080. [-db.password password] -- password of the data warehouse admin. If you skip this option the user password will not be used in database connection. ``` -------------------------------- ### Pgm_Aliases File Configuration Examples Source: https://www.ibm.com/docs/en/addi/6.1_topic=tasks-adding-files-project-folders Examples demonstrating the format of Pgm_Aliases configuration files, used for specifying external alias names. The format varies based on whether a disambiguation file path is included. Lines starting with '*' are comments. ```plaintext * - a commented line starts with '*' , , , ``` ```plaintext , , * procedure name in case of PLI/I file ``` ```plaintext * this is a commented line \shared-resoures-dir\Projects\Pgm_Alias_002\PL1\PLI1, PLI1, PLI01, PLI001 \shared-resoures-dir\Projects\Pgm_Alias_002\PL1\PLI1_1, PLI01, PLI_1, PLI_01, PLI1 PLI2, PLI002, PLI0002 PLI3, PLI03 ``` -------------------------------- ### Start Wazi Analyze Container (No Shared FS) Source: https://www.ibm.com/docs/en/addi/6.1_topic=container-deploying-wazi-analyze-podman Starts the Wazi Analyze container without a shared file system. It maps ports 5000 and 4680 for communication and assigns a name to the container. This is a basic setup for running the container. ```shell podman run -it -p 5000:5000 -p 4680:4680 --name : ``` ```shell podman run -it -p 5000:5000 -p 4680:4680 --name wa ibmcom/wazianalyze: ``` -------------------------------- ### Start ADDI Local Analysis Server using wa-startup.sh Source: https://www.ibm.com/docs/en/addi/6.1_topic=guide-starting-up-shutting-down-server This snippet shows how to start the ADDI Local Analysis server directly using the 'wa-startup.sh' script. It includes an optional '-d' flag for z/OS DLA data provider authentication tokens. A password is required for server access. ```bash wa-startup.sh ``` ```bash wa-startup.sh -d ``` -------------------------------- ### GET /projects/{project-uuid}/jobs Source: https://www.ibm.com/docs/en/addi/6.1_topic=samples-ad-rest-api-example Retrieves all jobs available within a specified ADDI project. ```APIDOC ## GET /projects/{project-uuid}/jobs ### Description Get all jobs available in an ADDI project. ### Method GET ### Endpoint /projects/{project-uuid}/jobs #### Path Parameters - **project-uuid** (string) - Required - The unique identifier for a project. ### Request Example ``` curl --user username:password https://{host}:{port}/ws/projects/SAMPLE-PROJECT/jobs ``` ### Response #### Success Response (200) - **meta** (object) - Contains metadata about the project and snapshot. - **project** (object) - **name** (string) - The name of the ADDI project. - **uuid** (string) - The UUID of the ADDI project. - **snapshot** (integer) - The UNIX timestamp (in seconds) when the data was collected. - **data** (array) - An array containing all the job artifacts. - **uid** (string) - The unique identifier of the job artifact. - **name** (string) - The name of the job. - **type** (string) - The artifact type (e.g., "JCL"). #### Response Example ```json { "meta": { "project": { "name": "SAMPLE-PROJECT", "uuid": "SAMPLE-PROJECT" }, "snapshot": 1502354654 }, "data": [ { "uid": "0b934ea4cfb7f446c7d926e711c45e12383bbfbea8d030dd34a154c7e3974076", "name": "CICSTS53", "type": "JCL" } ] } ``` ``` -------------------------------- ### Sample Graph API Response Structure (JSON) Source: https://www.ibm.com/docs/en/addi/6.1_topic=guide-using-wazi-analyze-apis This is an example of a JSON response from the Graph API, illustrating the structure of returned graph data. It includes a 'data' object containing an array of 'graphs'. Each graph object has an 'id', 'type', 'label', and 'nodes' and 'edges' properties. The 'nodes' object contains details about individual nodes, including their labels and metadata. The 'edges' object, not fully shown here, would detail the relationships between nodes. ```json { "data": { "graphs": [ { "id": "RAAJCL-Y2KMVSBD-jobgraph", "type": "Jobs", "label": "Hypercube data extract: column=job%2Bjobstep%2Bexttype%2Bextref%2Bextvalue%2Bdisposition", "nodes": { "job:Y2KMVSBD": { "label": "Y2KMVSBD", "metadata": { "type": "job" } }, "jobstep:1:LKED": { "label": "LKED", "metadata": { "type": "jobstep", "stepnum": 1, "exttype": "EXEC", "extref": "IEWL", "extvalue": "(LET,MAP,LIST)", "disposition": "", "ref": [ { "id": "ref:SYSLIB:1:LKED", "exttype": "DD", "extref": "SYSLIB", "extvalue": "LE370.V1R5M0.SCEELKED", "disposition": "SHR" }, { "id": "ref:SYSLIB:1:LKED", "exttype": "DD", "extref": "SYSLIB", "extvalue": "DB2.V5R1M0.SDSNLOAD", "disposition": "SHR" }, { "id": "ref:SYSPRINT:1:LKED", "exttype": "DD", "extref": "SYSPRINT", "extvalue": "SYSOUT", "disposition": "" }, { "id": "ref:SYSLMOD:1:LKED", "exttype": "DD", "extref": "SYSLMOD", "extvalue": "LSTAUS.QA.LOADLIB", "disposition": "SHR" }, { "id": "ref:SYSUT1:1:LKED", "exttype": "DD", "extref": "SYSUT1", "extvalue": "UNIT", "disposition": "" }, { "id": "ref:OBJECT:1:LKED", "exttype": "DD", "extref": "OBJECT", "extvalue": "LSTAUS.QA.OBJ", "disposition": "OLD" }, { "id": "ref:SYSLIN:1:LKED", "exttype": "DD", "extref": "SYSLIN", "extvalue": "", "disposition": "" }, { "id": "ref:SYSLIB:1:LKED", "exttype": "DD", "extref": "SYSLIB", "extvalue": "CICS.V4R1M0.SDFHLOAD", "disposition": "SHR" }, { "id": "ref:SYSLMOD:1:LKED", "exttype": "DD", "extref": "SYSLMOD", "extvalue": "LSTAUS.QA.CICS.LOADLIB", "disposition": "SHR" } ] } }, "jobstep:1:LKED:EXEC:IEWL": { "label": "IEWL", "metadata": { "type": "EXEC", "stepnum": 1 } }, "jobstep:2:BIND": { "label": "BIND", "metadata": { "type": "jobstep" } } } } ] } } ```