OBaaS CLI
The Oracle Backend for Microservices and AI offers a command-line interface (CLI), oractl. The CLI commands simplify the deployment of microservices applications as well as bindings with the resources that they use.Download the CLI here. The platform-specific binary can be renamed to oractl for convenience.
Table of Contents:
- Installing the CLI
- Using the CLI
- Command Concepts
- Workflow Example
- Available Command Groups
- Logging Information
Oracle Backend for Microservices and AI CLI is used to configure your backend and to deploy your Spring Boot applications to the backend.
- 
Download the Oracle Backend for Microservices and AI CLI oractlDownload the CLI from here 
- 
Rename the downloaded file to oractl
- 
Add oractlto PATH variableYou need to make sure it is executable and add it to your PATH environment variable. <copy> chmod +x oractl export PATH=/path/to/oractl:$PATH</copy>
NOTE: If environment is a Mac you need run the following command sudo xattr -r -d com.apple.quarantine <downloaded-file> otherwise will you get a security warning and the CLI will not work.
- 
Expose the Oracle Backend for Microservices and AI Admin server that the CLI calls using this command: kubectl port-forward services/obaas-admin -n obaas-admin 8080
- 
Start the CLI in interactive mode by running oractl from your terminal window. For example: oractlAs a result, the oractlprompt is displayed as follows:_ _ __ _ ___ / \ |_) _. _. (_ / | | \_/ |_) (_| (_| __) \_ |_ _|_ ======================================================================================== Application Name: Oracle Backend Platform :: Command Line Interface Application Version: (1.4.0) :: Spring Boot (v3.5.4) :: Ask for help: - Slack: https://oracledevs.slack.com/archives/C06L9CDGR6Z - email: obaas_ww@oracle.com oractl:>
The following describes the different resources handled by the client:
- 
Artifacts - An artifact, for example a JAR file, that can be used to run a workload. Artifacts are built into images. 
- 
Autoscaler - adjust pod replicas in response to workload demands. 
- 
Binding - A binding associates a datastore with a workload. 
- 
Configuration - A configuration property which can be injected into a workload. Identified by name, label and profile. 
- 
Datastore - A data store, for example a pluggable database or a schema/user in a database instance, which can be used by a workload. Can be shared by multiple workloads, although this is only recommended for truly shared resources like queues/topics used for asynchronous communications between microservices. In most normal cases, a datastore should only be associated with one workload, in keeping with the “database per service” pattern. 
- 
Identity - APIs related to identity (users, roles, etc.) are collected in this group. 
- 
Image - A container image which can be used to run an workload. Built from an artifact and a base image. 
- 
Namespace - A Kubernetes namespace in which workloads can be deployed. 
- 
Telemetry - APIs for managing consent (opt-in) for sending telemetry data to Oracle. 
- 
Workload - A Spring Boot application which can be deployed in the platform. Is associated with an artifact and an image, which have their own separate lifecycles. 
Following is a workflow example deploying the Spring services that makeup the CloudBank backend.
Create the namespace for the CloudBank application
namespace create --namespace application
Create the datastore for the Account and Customer microservices
datastore create --namespace application --username account --id account
datastore create --namespace application --username customer --id customer
Upload the Spring microservice jars
artifact create --namespace application --workload account --imageVersion 0.0.1 --file /Users/devusr/microservices-datadriven/cloudbank-v4/account/target/account-0.0.1-SNAPSHOT.jar
artifact create --namespace application --workload checks --imageVersion 0.0.1 --file /Users/devusr/microservices-datadriven/cloudbank-v4/checks/target/checks-0.0.1-SNAPSHOT.jar
artifact create --namespace application --workload customer --imageVersion 0.0.1 --file /Users/devusr/microservices-datadriven/cloudbank-v4/customer/target/customer-0.0.1-SNAPSHOT.jar
artifact create --namespace application --workload creditscore --imageVersion 0.0.1 --file /Users/devusr/microservices-datadriven/cloudbank-v4/creditscore/target/creditscore-0.0.1-SNAPSHOT.jar
artifact create --namespace application --workload transfer --imageVersion 0.0.1 --file /Users/devusr/microservices-datadriven/cloudbank-v4/transfer/target/transfer-0.0.1-SNAPSHOT.jar
Create images from the artifacts
image create --namespace application --workload account --imageVersion 0.0.1
image create --namespace application --workload checks --imageVersion 0.0.1
image create --namespace application --workload customer --imageVersion 0.0.1 
image create --namespace application --workload creditscore --imageVersion 0.0.1 
image create --namespace application --workload transfer --imageVersion 0.0.1 
Create a workload for the images
workload create --namespace application --imageVersion 0.0.1 --id account --liquibaseDB admin --cpuRequest 100m --framework SPRING_BOOT
workload create --namespace application --imageVersion 0.0.1 --id checks --cpuRequest 100m
workload create --namespace application --imageVersion 0.0.1 --id customer --liquibaseDB admin --cpuRequest 100m --framework SPRING_BOOT
workload create --namespace application --imageVersion 0.0.1 --id creditscore --cpuRequest 100m --framework SPRING_BOOT
workload create --namespace application --imageVersion 0.0.1 --id transfer --cpuRequest 100m --framework SPRING_BOOT
Create a binding between the workload and the datastore
binding create --namespace application --datastore account --workload account --framework SPRING_BOOT
binding create --namespace application --datastore customer --workload customer --framework SPRING_BOOT
binding create --namespace application --datastore account --workload checks --framework SPRING_BOOT
Verify success
serverversion
namespace list
datastore list --namespace application
artifact list
image list
binding list --namespace application
workload list --namespace application
Short descriptions for the available commands can be viewed by issuing the help command and detailed help for any individual
commands can be viewed by issuing help [command-name]. For example:
oractl:>help
AVAILABLE COMMANDS
Artifact
       artifact list: Lists the artifacts in your platform.
       artifact create: Creates a new artifact in your platform.
       artifact delete: Delete an artifact in your platform.
       artifact deleteByWorkload: Delete an artifact in your platform by workload.
Binding
       binding list: Lists bindings for a given namespace.
       binding update: Update a specific binding for a given namespace.
       binding delete: Delete a specific binding for a given namespace.
       binding create: Create a binding in a given namespace.
       binding get: Get a specific binding for a given namespace.
Built-In Commands
       help: Display help about available commands
       stacktrace: Display the full stacktrace of the last error.
       clear: Clear the shell screen.
       quit, exit: Exit the shell.
       history: Display or save the history of previously run commands
       version: Show version info
       script: Read and execute commands from a file.
Configuration
       configuration delete: Delete a specific configuration key.
       configuration create: Create a configuration.
       configuration get: Get a specific configuration by name.
       configuration update: Update a configuration.
       configuration list: Lists all configuration.
Datastore
       datastore list: Lists datastores for a given namespace.
       datastore update: Update a specific datastore for a given namespace.
       datastore create: Create a datastore in a given namespace.
       datastore delete: Delete a specific datastore for a given namespace.
       datastore get: Get a specific datastore for a given namespace.
Identity
       user list: Lists all the users in your platform.
       user create: Creates a new user in your platform.
       user get: get a user on your platform.
       user delete: Delete a user in your platform.
       user change-roles: Change the roles from the specified user.
       user change-password: Change password for the specified user. 
Image
       image get: Get a specific image on your platform.
       image list: Lists all the images in your platform.
       image create: Creates a new image in your platform.
       image delete: Delete an image in your platform.
       image deleteByWorkload: Delete an image in your platform by workload.
Initialization
       connect: Connect to the OBaaS Admin Service.
Namespace
       namespace create: Creates a new namespace in your platform.
       namespace delete: Delete a namespace in your platform.
       namespace update: Update the namespace secrets.
       namespace list: Lists the namespaces in your platform.
Server Version
       serverversion: Get obaas admin server version.
Telemetry
       telemetry-consent update: Update the platforms telemetry consent.
       telemetry-consent list: Lists the platforms telemetry consent status.
       telemetry-consent create: Create a telemetry consent record.
Workload
       autoscaler delete: Delete an autoscaler for a specific workload in a given namespace.
       workload create: Create a workload in a given namespace.
       workload delete: Delete a specific workload for a given namespace.
       workload update: Update a specific workload for a given namespace.
       autoscaler create: Create an autoscaler for a specific workload in a given namespace.
       workload getImage: Get the image for a specific workload in a given namespace.
       workload list: Lists workloads for a given namespace.
       workload get: Get a specific workload for a given namespace.
       autoscaler list: Lists autoscalers for a given workload in a given namespace.
       autoscaler update: Update an autoscaler for a specific workload in a given namespace.
Ask for Help
       Slack: https://oracledevs.slack.com/archives/C03ALDSV272
       E-mail: obaas_ww@oracle.com
The following is a description of the CLI commands:
Use the connect command to connect your oractl CLI to the Oracle Backend Administration service:
oractl:>help connect
NAME
       connect - Connect to the OBaaS Spring Cloud admin console.
SYNOPSIS
       connect --url String --help
OPTIONS
       --url String
       admin server URL
       [Optional, default = http://localhost:8080]
       --help or -h
       help for connect
       [Optional]
Ask for Help
       Slack: https://oracledevs.slack.com/archives/C03ALDSV272
       E-mail: obaas_ww@oracle.com
For example:
oractl:>connect
? username obaas-admin
? password ****************
obaas-admin -> Welcome!
An artifact, for example a JAR file, that can be used to run a workload. Artifacts are built into images.
oractl:>help artifact create
NAME
       artifact create - Creates a new artifact in your platform.
SYNOPSIS
       artifact create [--namespace String] [--workload String] [--imageVersion String] --nativeImage boolean --path String [--file String] --help 
OPTIONS
       --namespace String
       The namespace the artifact will be created in.
       [Mandatory]
       --workload String
       The workload name for the artifact.
       [Mandatory]
       --imageVersion String
       The version  of the artifact.
       [Mandatory]
       --nativeImage boolean
       Whether to create a native artifact.
       [Optional, default = false]
       --path String
       Artifact Path.
       [Optional]
       --file String
       Jar file used for Artifact Creation.
       [Mandatory]
       --help or -h 
       help for artifact create
       [Optional]
For example:
oractl:>artifact create --namespace myapp --workload account  --imageVersion 1.0.0 --file /Users/devuser/account.jar
obaas-cli [artifact create]: Artifact [account:1.0.0] was successfully created.
oractl:>help artifact list
NAME
       artifact list - Lists the artifacts in your platform.
SYNOPSIS
       artifact list --help 
OPTIONS
       --help or -h 
       help for artifact list
       [Optional]
For example:
oractl:>artifact list
╔══╤═════════╤════════╤════════╤══════╤══════════════════════════════════════════════════════╗
║ID│Namespace│Workload│Artifact│Native│Path                                                  ║
║  │         │        │Version │Image │                                                      ║
╠══╪═════════╪════════╪════════╪══════╪══════════════════════════════════════════════════════╣
║6 │myapp    │account │1.0.0   │false │/app/upload-dir/myapp/account/target/account-1.0.0.jar║
╚══╧═════════╧════════╧════════╧══════╧══════════════════════════════════════════════════════╝
oractl:>help artifact delete
NAME
       artifact delete - Delete an artifact in your platform.
SYNOPSIS
       artifact delete [--artifactId String] --help 
OPTIONS
       --artifactId String
       The ID of the artifact you want to delete.
       [Mandatory]
       --help or -h 
       help for artifact delete
       [Optional]
For example:
oractl:>artifact delete --artifactId 6
obaas-cli [artifact delete]: Artifact [6] was successfully deleted.
oractl:>help artifact deleteByWorkload
NAME
       artifact deleteByWorkload - Delete an artifact in your platform by workload.
SYNOPSIS
       artifact deleteByWorkload [--namespace String] [--workload String] [--artifactVersion String] --help 
OPTIONS
       --namespace String
       The namespace the artifact will be deleted in.
       [Mandatory]
       --workload String
       The workload name for the artifact.
       [Mandatory]
       --artifactVersion String
       The version  of the artifact.
       [Mandatory]
       --help or -h 
       help for artifact deleteByWorkload
       [Optional]
For example:
oractl:>artifact deleteByWorkload --namespace myapp --workload account --artifactVersion 1.0.0
obaas-cli [artifact delete]: Artifact [account:1.0.0] was successfully deleted.
adjust pod replicas in response to workload demands
oractl:>help autoscaler create
NAME
       autoscaler create - Create an autoscaler for a specific workload in a given namespace.
SYNOPSIS
       autoscaler create [--namespace String] [--workloadID String] [--minimumReplicas Integer] [--maximumReplicas Integer] [--cpuPercent Integer] --help 
OPTIONS
       --namespace String
       The namespace to create the workload in.
       [Mandatory]
       --workloadID String
       The id of the workload.
       [Mandatory]
       --minimumReplicas Integer
       Minimum replicas for workload.
       [Mandatory]
       --maximumReplicas Integer
       Maximum Replicas for workload.
       [Mandatory]
       --cpuPercent Integer
       Indicates the average CPU utilization threshold that triggers scaling of pods.
       [Mandatory]
       --help or -h 
       help for autoscaler create
       [Optional]
For example:
oractl:>autoscaler create --namespace myapp --workloadID account --minimumReplicas 1 --maximumReplicas 5 --cpuPercent 65
obaas-cli [autoscaler create]: Autoscaler [account] was successfully created.
oractl:>help autoscaler list
NAME
       autoscaler list - Lists autoscalers for a given workload in a given namespace.
SYNOPSIS
       autoscaler list [--namespace String] [--workloadID String] --help 
OPTIONS
       --namespace String
       The namespace to query workloads from.
       [Mandatory]
       --workloadID String
       The id of the workload.
       [Mandatory]
       --help or -h 
       help for autoscaler list
       [Optional]
For example:
oractl:>autoscaler list --namespace myapp --workloadID accounts
╔═══════════╤═══════════╤══════════╗
║Minimum    │Maximum    │CPUPercent║
║Replicas   │Replicas   │          ║
╠═══════════╪═══════════╪══════════╣
║1          │5          │65        ║
╚═══════════╧═══════════╧══════════╝
oractl:>help autoscaler update
NAME
       autoscaler update - Update an autoscaler for a specific workload in a given namespace.
SYNOPSIS
       autoscaler update [--namespace String] [--workloadID String] [--minimumReplicas Integer] [--maximumReplicas Integer] [--cpuPercent Integer] --help 
OPTIONS
       --namespace String
       The namespace to create the workload in.
       [Mandatory]
       --workloadID String
       The id of the workload.
       [Mandatory]
       --minimumReplicas Integer
       Minimum replicas for workload.
       [Mandatory]
       --maximumReplicas Integer
       Maximum Replicas for workload.
       [Mandatory]
       --cpuPercent Integer
       Indicates the average CPU utilization threshold that triggers scaling of pods.
       [Mandatory]
       --help or -h 
       help for autoscaler update
       [Optional]
For example:
oractl:>autoscaler update --namespace myapp --workloadID account --minimumReplicas 2 --maximumReplicas 3 --cpuPercent 75
obaas-cli [autoscaler update]: Autoscaler [account] was successfully updated.
oractl:>help autoscaler delete
NAME
       autoscaler delete - Delete an autoscaler for a specific workload in a given namespace.
SYNOPSIS
       autoscaler delete [--namespace String] [--workloadID String] --help 
OPTIONS
       --namespace String
       The namespace of the workload.
       [Mandatory]
       --workloadID String
       The workload id that has the autoscaler to be deleted.
       [Mandatory]
       --help or -h 
       help for autoscaler delete
       [Optional]
For example:
oractl:>autoscaler delete --namespace myapp --workloadID accounts
obaas-cli [autoscaler delete]: Autoscaler [accounts] was successfully deleted.
A binding associates a datastore with a workload.
oractl:>help binding create
NAME
       binding create - Create a binding in a given namespace.
SYNOPSIS
       binding create [--namespace String] [--workload String] [--datastore String] [--framework String]--help 
OPTIONS
       --namespace String
       The namespace to create the binding in.
       [Mandatory]
       --workload String
       The workload id.
       [Mandatory]
       --datastore String
       The datastore id.
       [Mandatory]
       --framework String
       The workload framework. Must be SPRING_BOOT or HELIDON
       [Mandatory]
       --help or -h 
       help for binding create
       [Optional]
For example:
oractl:>binding create --namespace myapp --workload accounts --datastore mydatastore --framework SPRING_BOOT
obaas-cli [binding create]: Binding [accounts] was successfully created.
oractl:>help binding list
NAME
       binding list - Lists bindings for a given namespace.
SYNOPSIS
       binding list [--namespace String] --help 
OPTIONS
       --namespace String
       The namespace to query bindings from.
       [Mandatory]
       --help or -h 
       help for binding list
       [Optional]
For example:
oractl:>binding list --namespace myapp
╔════════════════╤═════════╤═══════════╗
║Workload        │Datastore│Framework  ║
╠════════════════╪═════════╪═══════════╣
║account         │account  │SPRING_BOOT║
╟────────────────┼─────────┼───────────╢
║checks          │account  │SPRING_BOOT║
╟────────────────┼─────────┼───────────╢
║customer        │customer │SPRING_BOOT║
╟────────────────┼─────────┼───────────╢
║testrunner      │account  │SPRING_BOOT║
╟────────────────┼─────────┼───────────╢
║customer-helidon│customer │HELIDON.   ║
╚════════════════╧═════════╧═══════════╝
oractl:>help binding get
NAME
       binding get - Get a specific binding for a given namespace.
SYNOPSIS
       binding get [--namespace String] [--workload String] --help 
OPTIONS
       --namespace String
       The namespace to query the binding from.
       [Mandatory]
       --workload String
       The workload id.
       [Mandatory]
       --help or -h 
       help for binding get
       [Optional]
For example:
oractl:>binding get --namespace myapp --workload account
╔════════╤═════════╤═══════════╗
║Workload│Datastore│Framework  ║
╠════════╪═════════╪═══════════╣
║account │account  │SPRING_BOOT║
╚════════╧═════════╧═══════════╝
oractl:>help binding update
NAME
       binding update - Update a specific binding for a given namespace.
SYNOPSIS
       binding update [--namespace String] [--workload String] [--datastore String] [--framework String] --help 
OPTIONS
       --namespace String
       The namespace to update the datastore in.
       [Mandatory]
       --workload String
       The workload id.
       [Mandatory]
       --datastore String
       The datastore id.
       [Mandatory]
       --framework String
       The workload framework. Must be SPRING_BOOT or HELIDON
       [Mandatory]
       --help or -h 
       help for binding update
       [Optional]
For example:
oractl:>binding update --namespace myapp --workload account --datastore newdatastore --framework SPRING_BOOT
obaas-cli [binding update]: Binding [account] was successfully updated.
oractl:>help binding delete
NAME
       binding delete - Delete a specific binding for a given namespace.
SYNOPSIS
       binding delete [--namespace String] [--workload String] --help 
OPTIONS
       --namespace String
       The namespace to delete the binding in.
       [Mandatory]
       --workload String
       The workload id.
       [Mandatory]
       --help or -h 
       help for binding delete
       [Optional]
For example:
oractl:>binding delete --namespace myapp --workload account
obaas-cli [binding delete]: Binding [account] was successfully deleted.
A configuration property which can be injected into a workload. Identified by name, label and profile.
oractl:>help configuration create
NAME
       configuration create - Create a configuration.
SYNOPSIS
       configuration create [--name String] [--profile String] [--label String] [--key String] [--value String] --help 
OPTIONS
       --name String
       The name of the configuration.
       [Mandatory]
       --profile String
       The configuration profile.
       [Mandatory]
       --label String
       The configuration label.
       [Mandatory]
       --key String
       The configuration key.
       [Mandatory]
       --value String
       The configuration value.
       [Mandatory]
       --help or -h 
       help for configuration create
       [Optional]
For example:
oractl:>configuration create --name accountconfig --profile development --label 23beta --key debuglogging --value debug
obaas-cli [configuration create]: Configuration [accountconfig] was successfully created.
oractl:>help configuration list
NAME
       configuration list - Lists all configuration.
SYNOPSIS
       configuration list --help 
OPTIONS
       --help or -h 
       help for configuration list
       [Optional]
For example:
oractl:>configuration list
╔═════════════╗
║Name         ║
╠═════════════╣
║accountconfig║
╟─────────────╢
║application-a║
╚═════════════╝
oractl:>help configuration get
NAME
       configuration get - Get a specific configuration by name.
SYNOPSIS
       configuration get [--name String] --help 
OPTIONS
       --name String
       The name of the configuration.
       [Mandatory]
       --help or -h 
       help for configuration get
       [Optional]
For example:
oractl:>configuration get --name accountconfig
╔═════════════╤═══════════╤══════╤════════════╤═════╗
║Name         │Profile    │Label │Key         │Value║
╠═════════════╪═══════════╪══════╪════════════╪═════╣
║accountconfig│development│23beta│debuglogging│debug║
╚═════════════╧═══════════╧══════╧════════════╧═════╝
oractl:>help configuration update
NAME
       configuration update - Update a configuration.
SYNOPSIS
       configuration update [--name String] [--profile String] [--label String] [--key String] [--value String] --help 
OPTIONS
       --name String
       The name of the configuration.
       [Mandatory]
       --profile String
       The configuration profile.
       [Mandatory]
       --label String
       The configuration label.
       [Mandatory]
       --key String
       The configuration key.
       [Mandatory]
       --value String
       The configuration value.
       [Mandatory]
       --help or -h 
       help for configuration update
       [Optional]
For example:
oractl:>configuration update --name accountconfig --profile development --label 23beta --key debuglogging --value info
obaas-cli [configuration update]: Configuration [accountconfig] was successfully updated.
oractl:>help configuration delete
NAME
       configuration delete - Delete a specific configuration key.
SYNOPSIS
       configuration delete [--name String] [--profile String] [--label String] [--key String] [--value String] --help 
OPTIONS
       --name String
       The name of the configuration.
       [Mandatory]
       --profile String
       The configuration profile.
       [Mandatory]
       --label String
       The configuration label.
       [Mandatory]
       --key String
       The configuration key.
       [Mandatory]
       --value String
       The configuration value.
       [Mandatory]
       --help or -h 
       help for configuration delete
       [Optional]
For example:
oractl:>configuration delete --name accountconfig --profile development --label 23beta --key debuglogging --value info
obaas-cli [configuration delete]: Configuration [accountconfig] was successfully deleted.
A data store, for example a pluggable database or a schema/user in a database instance, which can be used by a workload. Can be shared by multiple workloads, although this is only recommended for truly shared resources like queues/topics used for asynchronous communications between microservices. In most normal cases, a datastore should only be associated with one workload, in keeping with the “database per service” pattern.
oractl:>help datastore create
NAME
       datastore create - Create a datastore in a given namespace.
SYNOPSIS
       datastore create [--namespace String] [--username String] [--id String] --help 
OPTIONS
       --namespace String
       The namespace to create the datastore in.
       [Mandatory]
       --username String
       The datastore username.
       [Mandatory]
       --id String
       The datastore id.
       [Mandatory]
       --help or -h 
       help for datastore create
       [Optional]
For example:
oractl:>datastore create --namespace myapp --username account --id account
? password ************
obaas-cli [datastore create]: Datastore [account] was successfully created.
oractl:>help datastore list
NAME
       datastore list - Lists datastores for a given namespace.
SYNOPSIS
       datastore list [--namespace String] --help 
OPTIONS
       --namespace String
       The namespace to query datastores from.
       [Mandatory]
       --help or -h 
       help for datastore list
       [Optional]
For example:
oractl:>datastore list --namespace myapp
╔════════════╤════════╗
║Datastore ID│Username║
╠════════════╪════════╣
║account     │account ║
╟────────────┼────────╢
║mydatastore │dbuser  ║
╚════════════╧════════╝
oractl:>help datastore get
NAME
       datastore get - Get a specific datastore for a given namespace.
SYNOPSIS
       datastore get [--namespace String] [--id String] --help 
OPTIONS
       --namespace String
       The namespace to query the datastore from.
       [Mandatory]
       --id String
       The datastore id.
       [Mandatory]
       --help or -h 
       help for datastore get
       [Optional]
For example:
oractl:>datastore get --namespace myapp --id account
╔════════════╤════════╗
║Datastore ID│Username║
╠════════════╪════════╣
║account     │account ║
╚════════════╧════════╝
oractl:>help datastore update
NAME
       datastore update - Update a specific datastore for a given namespace.
SYNOPSIS
       datastore update [--namespace String] [--id String] --help 
OPTIONS
       --namespace String
       The namespace to update the datastore in.
       [Mandatory]
       --id String
       The datastore id.
       [Mandatory]
       --help or -h 
       help for datastore update
       [Optional]
For example:
oractl:>datastore update --namespace myapp --id account
? password *************
obaas-cli [datastore update]: Datastore [account] was successfully updated.
oractl:>help datastore delete
NAME
       datastore delete - Delete a specific datastore for a given namespace.
SYNOPSIS
       datastore delete [--namespace String] [--id String] --help 
OPTIONS
       --namespace String
       The namespace to delete the datastore from.
       [Mandatory]
       --id String
       The datastore id.
       [Mandatory]
       --help or -h 
       help for datastore delete
       [Optional]
For example:
oractl:>datastore delete --namespace myapp --id account
obaas-cli [datastore delete]: Datastore [account] was successfully deleted.
APIs related to identity (users, roles, etc.) are collected in this group.
oractl:>help user create
NAME
       user create - Creates a new user in your platform.
SYNOPSIS
       user create [--username String] --roles String --help 
OPTIONS
       --username String
       The name you assign to the user during creation. This is the user's login for the CLI. The name must be unique across all users in the platform and cannot be changed.
       [Mandatory]
       --roles String
       The user's role within the platform. A user must have up to three possible roles provided in a comma-separated list. [ROLE_ADMIN,ROLE_CONFIG_EDITOR,ROLE_USER,ROLE_SOC_USER].
       [Optional, default = ROLE_USER]
       --help or -h 
       help for user create
       [Optional]
For example:
oractl:>user create --username devuser --roles ROLE_CONFIG_EDITOR,ROLE_USER
? password ************
obaas-cli [user create]: User [devuser] was successfully created.
oractl:>help user list
NAME
       user list - Lists all the users in your platform.
SYNOPSIS
       user list --help 
OPTIONS
       --help or -h 
       help for user list
       [Optional]
For example:
oractl:>user list
╔════════════╤═════════════════════════════════════════════════════╗
║Username    │Roles                                                ║
╠════════════╪═════════════════════════════════════════════════════╣
║devuser     │ROLE_CONFIG_EDITOR,ROLE_USER                         ║
╟────────────┼─────────────────────────────────────────────────────╢
║obaas-user  │ROLE_USER                                            ║
╟────────────┼─────────────────────────────────────────────────────╢
║obaas-admin │ROLE_ADMIN,ROLE_CONFIG_EDITOR,ROLE_USER,ROLE_SOC_USER║
╟────────────┼─────────────────────────────────────────────────────╢
║obaas-config│ROLE_CONFIG_EDITOR,ROLE_USER                         ║
╚════════════╧═════════════════════════════════════════════════════╝
oractl:>help user get
NAME
       user get - get a user on your platform.
SYNOPSIS
       user get [--username String] --help 
OPTIONS
       --username String
       The username you want to retrieve.
       [Mandatory]
       --help or -h 
       help for user get
       [Optional]
For example:
oractl:>user get --username devuser
╔════════╤════════════════════════════╗
║Username│Roles                       ║
╠════════╪════════════════════════════╣
║devuser │ROLE_CONFIG_EDITOR,ROLE_USER║
╚════════╧════════════════════════════╝
oractl:>help user change-password
NAME
       user change-password - Change password for the specified user. 
SYNOPSIS
       user change-password [--username String] --help 
OPTIONS
       --username String
       The username you want to change the password.
       [Mandatory]
       --help or -h 
       help for user change-password
       [Optional]
For example:
oractl:>user change-password --username devuser
? password **************
obaas-cli [user update]: User [devuser] was successfully updated.
oractl:>help user change-roles
NAME
       user change-roles - Change the roles from the specified user.
SYNOPSIS
       user change-roles [--username String] --roles String --help 
OPTIONS
       --username String
       The name you assign to the user during creation. This is the user's login for the CLI.
       [Mandatory]
       --roles String
       The user's role within the platform. A user must have up to three possible roles provided in a comma-separated list. [ROLE_ADMIN,ROLE_CONFIG_EDITOR,ROLE_USER].
       [Optional, default = ROLE_USER]
       --help or -h 
       help for user change-roles
       [Optional]
For example:
oractl:>user change-roles --username devuser --roles ROLE_USER
obaas-cli [user update]: User [devuser] was successfully updated.
oractl:>help user delete
NAME
       user delete - Delete a user in your platform.
SYNOPSIS
       user delete [--username String] --help 
OPTIONS
       --username String
       The username you want to delete.
       [Mandatory]
       --help or -h 
       help for user delete
       [Optional]
For example:
oractl:>user delete --username devuser
obaas-cli [user delete]: User [devuser] was successfully deleted.
A container image which can be used to run an workload. Built from an artifact and a base image. The default base image is ghcr.io/oracle/openjdk-image-obaas:21
oractl:>help image create
NAME
       image create - Creates a new image in your platform.
SYNOPSIS
       image create [--namespace String] [--workload String] [--imageVersion String] --baseImage String --nativeImage Boolean --help 
OPTIONS
       --namespace String
       The namespace for the image. 
       [Mandatory]
       --workload String
       The workload name of the artifact for image creation. 
       [Mandatory]
       --imageVersion String
       The version of the artifact for image creation.
       [Mandatory]
       --baseImage String
       The java version used for image creation.
       [Optional, default = ghcr.io/oracle/openjdk-image-obaas:21]
       --nativeImage Boolean
       Whether to create a native artifact.
       [Optional, default = false]
       --help or -h 
       help for image create
       [Optional]
For example:
oractl:>image create --namespace myapp --workload account --imageVersion 1.1.0
obaas-cli [image create]: Image [account:1.1.0] was successfully created.
oractl:>help image list
NAME
       image list - Lists all the images in your platform.
SYNOPSIS
       image list --help 
OPTIONS
       --help or -h 
       help for image list
       [Optional]
For example:
oractl:>image list
╔══╤═══════════════════════════════════════════════════╤═════════════════════════════════════╤═══════════╤════════╤═════════════════════════════╤═══════╗
║ID│Name                                               │BaseImage                            │Namespace  │Workload│Created                      │Status ║
╠══╪═══════════════════════════════════════════════════╪═════════════════════════════════════╪═══════════╪════════╪═════════════════════════════╪═══════╣
║10│iad.ocir.io/maacloud/calf/application-account:0.0.1│ghcr.io/oracle/openjdk-image-obaas:21│application│account │2024-12-13T14:31:58.041+00:00│FAILED ║
╟──┼───────────────────────────────────────────────────┼─────────────────────────────────────┼───────────┼────────┼─────────────────────────────┼───────╢
║11│iad.ocir.io/maacloud/calf/myapp-account:0.0.1      │ghcr.io/oracle/openjdk-image-obaas:21│myapp      │account │2024-12-13T14:32:22.436+00:00│FAILED ║
╟──┼───────────────────────────────────────────────────┼─────────────────────────────────────┼───────────┼────────┼─────────────────────────────┼───────╢
║12│iad.ocir.io/maacloud/calf/myapp-account:1.1.0      │ghcr.io/oracle/openjdk-image-obaas:21│myapp      │account │2024-12-13T14:42:19.462+00:00│CREATED║
╚══╧═══════════════════════════════════════════════════╧═════════════════════════════════════╧═══════════╧════════╧═════════════════════════════╧═══════╝
oractl:>help image get
NAME
       image get - Get a specific image on your platform.
SYNOPSIS
       image get [--imageId String] --help 
OPTIONS
       --imageId String
       The ID of the image you want to retrieve.
       [Mandatory]
       --help or -h 
       help for image get
       [Optional]
For example:
oractl:>image get --imageId 12
╔══╤═════════════════════════════════════════════╤═════════════════════════════════════╤═════════╤════════╤═════════════════════════════╤═══════╗
║ID│Name                                         │BaseImage                            │Namespace│Workload│Created                      │Status ║
╠══╪═════════════════════════════════════════════╪═════════════════════════════════════╪═════════╪════════╪═════════════════════════════╪═══════╣
║12│iad.ocir.io/maacloud/calf/myapp-account:1.1.0│ghcr.io/oracle/openjdk-image-obaas:21│myapp    │account │2024-12-13T14:42:19.462+00:00│CREATED║
╚══╧═════════════════════════════════════════════╧═════════════════════════════════════╧═════════╧════════╧═════════════════════════════╧═══════╝
oractl:>help image delete
NAME
       image delete - Delete an image in your platform.
SYNOPSIS
       image delete [--imageId String] --help 
OPTIONS
       --imageId String
       The ID of the image you want to delete.
       [Mandatory]
       --help or -h 
       help for image delete
       [Optional]
For example:
oractl:>image delete --imageId 10
obaas-cli [image delete]: Image [10] was successfully deleted.
NOTE: When using this command the
workloadmust still exist. If not you’ll get an error. The solution is to delete the workload using the id.
The error message is similar to this:
obaas-cli [image delete]: error: deployments.apps "account" not found    Http Return Code = 404
oractl:>help image deleteByWorkload
NAME
       image deleteByWorkload - Delete an image in your platform by workload.
SYNOPSIS
       image deleteByWorkload [--namespace String] [--workload String] --help 
OPTIONS
       --namespace String
       The namespace the image will be deleted in.
       [Mandatory]
       --workload String
       The workload name for the image.
       [Mandatory]
       --help or -h 
       help for image deleteByWorkload
       [Optional]
For example:
oractl:>image deleteByWorkload --namespace myapp --workload account
obaas-cli [image delete]: Image [account] was successfully deleted.
A Kubernetes namespace in which workloads can be deployed.
oractl:>help namespace create
NAME
       namespace create - Creates a new namespace in your platform.
SYNOPSIS
       namespace create [--namespace String] --help 
OPTIONS
       --namespace String
       The name for the new namespace in your platform. 
       [Mandatory]
       --help or -h 
       help for namespace create
       [Optional]
For example:
oractl:>namespace create --namespace application
obaas-cli [namespace create]: Namespace [application] was successfully created.
oractl:>help namespace list
NAME
       namespace list - Lists the namespaces in your platform.
SYNOPSIS
       namespace list --help 
OPTIONS
       --help or -h 
       help for namespace list
       [Optional]
For example:
oractl:>namespace list
╔═══════════╗
║Namespace  ║
╠═══════════╣
║application║
╟───────────╢
║myapp      ║
╚═══════════╝
oractl:>help namespace update
NAME
       namespace update - Update the namespace secrets.
SYNOPSIS
       namespace update [--namespace String] --help 
OPTIONS
       --namespace String
       The namespace you want to update.
       [Mandatory]
       --help or -h 
       help for namespace update
       [Optional]
For example:
oractl:>namespace update --namespace application
obaas-cli [namespace update]: Namespace [application] was successfully updated.
oractl:>help namespace delete
NAME
       namespace delete - Delete a namespace in your platform.
SYNOPSIS
       namespace delete [--namespace String] --help 
OPTIONS
       --namespace String
       The namespace you want to delete.
       [Mandatory]
       --help or -h 
       help for namespace delete
       [Optional]
For example
oractl:>namespace delete --namespace application
obaas-cli [namespace delete]: Namespace [application] was successfully deleted.
APIs for managing consent (opt-in) for sending telemetry data to Oracle.
oractl:>help telemetry-consent create
NAME
       telemetry-consent create - Create a telemetry consent record.
SYNOPSIS
       telemetry-consent create --consented boolean --help 
OPTIONS
       --consented boolean
       The value of the telemetry consent.
       [Optional, default = false]
       --help or -h 
       help for telemetry-consent create
       [Optional]
For example:
oractl:>telemetry-consent create --consented true
obaas-cli [telemetry-consent create]: Telemetry-consent [true] was successfully created.
oractl:>help telemetry-consent list
NAME
       telemetry-consent list - Lists the platforms telemetry consent status.
SYNOPSIS
       telemetry-consent list --help 
OPTIONS
       --help or -h 
       help for telemetry-consent list
       [Optional]
For example:
oractl:>telemetry-consent list
╔═════════╤═════════════════════════════╗
║Consented│Timestamp                    ║
╠═════════╪═════════════════════════════╣
║true     │2024-12-16T17:32:07.038+00:00║
╚═════════╧═════════════════════════════╝
oractl:>help telemetry-consent update
NAME
       telemetry-consent update - Update the platforms telemetry consent.
SYNOPSIS
       telemetry-consent update --consented boolean --help 
OPTIONS
       --consented boolean
       The value of the telemetry consent.
       [Optional, default = false]
       --help or -h 
       help for telemetry-consent update
       [Optional]
For example:
oractl:>telemetry-consent update --consented false
obaas-cli [telemetry-consent update]: Telemetry-consent [false] was successfully updated.
A Spring Boot application which can be deployed in the platform. Is associated with an artifact and an image, which have their own separate lifecycles.
oractl:>help workload create
NAME
       workload create - Create a workload in a given namespace.
SYNOPSIS
       workload create [--namespace String] [--id String] --profile String [--imageVersion String] --cpuRequest String --port int --addHealthProbe boolean --liquibaseDB String --initialReplicas int --help --framework
OPTIONS
       --namespace String
       The namespace to create the workload in.
       [Mandatory]
       --id String
       The id of the workload.
       [Mandatory]
       --profile String
       The workload profile.
       [Optional, default = obaas]
       --imageVersion String
       The workload image version.
       [Mandatory]
       --cpuRequest String
       The workload cpu request.
       [Optional, default = 500m]
       --port int
       Port workload listens on.
       [Optional, default = 8080]
       --addHealthProbe boolean
       The workload cpu request.
       [Optional, default = false]
       --liquibaseDB String
       The workload liquibase database.
       [Optional]
       --initialReplicas int
       Initial workload replicas.
       [Optional, default = 1]
       --framework String
       The workload framework. Must be SPRING_BOOT or HELIDON
       [Mandatory]
       --help or -h 
       help for workload create
       [Optional]
For example:
oractl:>workload create --namespace myapp --imageVersion 1.1.0  --id account
obaas-cli [workload create]: Workload [account] was successfully created.
oractl:>help workload list
NAME
       workload list - Lists workloads for a given namespace.
SYNOPSIS
       workload list [--namespace String] --help 
OPTIONS
       --namespace String
       The namespace to query workloads from.
       [Mandatory]
       --help or -h 
       help for workload list
       [Optional]
For example:
oractl:>workload list --namespace myapp
╔═══════════╤════════╤═══════╤══════════╤════╤══════════════╤═══════════════╤═══════════╤═══════════╗
║Workload ID│Workload│Profile│CPURequest│Port│addHealthProbe│initialReplicas│liquibaseDB│Framework  ║
║           │Version │       │          │    │              │               │           │           ║
╠═══════════╪════════╪═══════╪══════════╪════╪══════════════╪═══════════════╪═══════════╪═══════════╣
║account    │0.0.1   │obaas  │100m      │8080│false         │1              │admin      │SPRING_BOOT║
╟───────────┼────────┼───────┼──────────┼────┼──────────────┼───────────────┼───────────┼───────────╢
║checks     │0.0.1   │obaas  │100m      │8080│false         │1              │           │SPRING_BOOT║
╟───────────┼────────┼───────┼──────────┼────┼──────────────┼───────────────┼───────────┼───────────╢
║creditscore│0.0.1   │obaas  │100m      │8080│false         │1              │           │SPRING_BOOT║
╟───────────┼────────┼───────┼──────────┼────┼──────────────┼───────────────┼───────────┼───────────╢
║customer   │0.0.1   │obaas  │100m      │8080│false         │1              │admin      │SPRING_BOOT║
╟───────────┼────────┼───────┼──────────┼────┼──────────────┼───────────────┼───────────┼───────────╢
║testrunner │0.0.1   │obaas  │100m      │8080│false         │1              │           │SPRING_BOOT║
╟───────────┼────────┼───────┼──────────┼────┼──────────────┼───────────────┼───────────┼───────────╢
║transfer   │0.0.1   │obaas  │100m      │8080│false         │1              │           │SPRING_BOOT║
╚═══════════╧════════╧═══════╧══════════╧════╧══════════════╧═══════════════╧═══════════╧═══════════╝
oractl:>help workload get
NAME
       workload get - Get a specific workload for a given namespace.
SYNOPSIS
       workload get [--namespace String] [--id String] --help 
OPTIONS
       --namespace String
       The namespace to query the workload from.
       [Mandatory]
       --id String
       The workload id.
       [Mandatory]
       --help or -h 
       help for workload get
       [Optional]
For example:
oractl:>workload get --namespace myapp --id account
╔════════╤════════╤═══════╤══════════╤════╤══════════════╤═══════════════╤═══════════╤═══════════╗
║Workload│Workload│Profile│CPURequest│Port│addHealthProbe│initialReplicas│liquibaseDB│Framework  ║
║ID      │Version │       │          │    │              │               │           │           ║
╠════════╪════════╪═══════╪══════════╪════╪══════════════╪═══════════════╪═══════════╪═══════════╣
║account │0.0.1   │obaas  │100m      │8080│false         │1              │admin      │SPRING_BOOT║
╚════════╧════════╧═══════╧══════════╧════╧══════════════╧═══════════════╧═══════════╧═══════════╝
oractl:>help workload update
NAME
       workload update - Update a specific workload for a given namespace.
SYNOPSIS
       workload update [--namespace String] [--id String] --profile String [--imageVersion String] --cpuRequest String --port Integer --addHealthProbe Boolean --liquibaseDB String --initialReplicas Integer --help 
OPTIONS
       --namespace String
       The namespace to create the workload in.
       [Mandatory]
       --id String
       The id of the workload.
       [Mandatory]
       --profile String
       The workload profile.
       [Optional]
       --imageVersion String
       The workload image version.
       [Mandatory]
       --cpuRequest String
       The workload cpu request.
       [Optional]
       --port Integer
       Port workload listens on.
       [Optional]
       --addHealthProbe Boolean
       The workload cpu request.
       [Optional]
       --liquibaseDB String
       The workload liquibase database.
       [Optional]
       --initialReplicas Integer
       Initial workload replicas.
       [Optional]
       --framework String
       The workload framework. Must be SPRING_BOOT or HELIDON
       [Mandatory]
       --help or -h 
       help for workload update
       [Optional]
For example:
oractl:>workload update --namespace myapp --id account --imageVersion 1.1.0 --addHealthProbe true --framework SPRING_BOOT
obaas-cli [workload update]: Workload [account] was successfully updated.
oractl:>help workload getImage
NAME
       workload getImage - Get the image for a specific workload in a given namespace.
SYNOPSIS
       workload getImage [--namespace String] [--id String] --help 
OPTIONS
       --namespace String
       The namespace to query the workload from.
       [Mandatory]
       --id String
       The workload id.
       [Mandatory]
       --help or -h 
       help for workload getImage
       [Optional]
For example:
oractl:>workload getImage --namespace myapp --id account
╔═════╤══════════════════════════════════════════════╤═════════════════════════════════════╤════════╤═════════╤═════════════════════════════╤═══════╗
║Image│Image Name                                    │Base Image                           │Workload│Namespace│Created                      │Status ║
║ID   │                                              │                                     │        │         │                             │       ║
╠═════╪══════════════════════════════════════════════╪═════════════════════════════════════╪════════╪═════════╪═════════════════════════════╪═══════╣
║14   │iad.ocir.io/maacloud/calf/myapp-account:1.1.0 │ghcr.io/oracle/openjdk-image-obaas:21│account │myapp    │2024-12-13T16:07:40.529+00:00│CREATED║
╚═════╧══════════════════════════════════════════════╧═════════════════════════════════════╧════════╧═════════╧═════════════════════════════╧═══════╝
oractl:>help workload delete
NAME
       workload delete - Delete a specific workload for a given namespace.
SYNOPSIS
       workload delete [--namespace String] [--id String] --help 
OPTIONS
       --namespace String
       The namespace to delete the workload from.
       [Mandatory]
       --id String
       The workload id.
       [Mandatory]
       --help or -h 
       help for workload delete
       [Optional]
For example:
oractl:>workload delete --namespace myapp --id account
obaas-cli [workload delete]: Workload [account] was successfully deleted.
oractl:>help serverversion
NAME
       serverversion - Get obaas admin server version.
SYNOPSIS
       serverversion --help 
OPTIONS
       --help or -h 
       help for serverversion
       [Optional]
For example:
oractl:>serverversion
╔═══════╗
║Version║
╠═══════╣
║1.4.0  ║
╚═══════╝
The log file for oractl on Mac or Unix machine is stored in the $HOME/config/oractl directory. The file name is oractl-cli-history.log