{"id":15554912,"url":"https://github.com/grycap/oscar-cli","last_synced_at":"2026-01-27T16:11:07.158Z","repository":{"id":42435789,"uuid":"346337151","full_name":"grycap/oscar-cli","owner":"grycap","description":"A command line interface to easily interact with OSCAR clusters","archived":false,"fork":false,"pushed_at":"2024-05-28T16:08:43.000Z","size":985,"stargazers_count":1,"open_issues_count":8,"forks_count":1,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-05-29T02:07:42.140Z","etag":null,"topics":["cli","faas","kubernetes","oscar","serverless"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grycap.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-10T11:46:39.000Z","updated_at":"2024-06-20T14:45:16.516Z","dependencies_parsed_at":"2024-02-21T09:33:41.193Z","dependency_job_id":"a07750d2-46c7-424f-b375-3dc56d055c9c","html_url":"https://github.com/grycap/oscar-cli","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grycap%2Foscar-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grycap%2Foscar-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grycap%2Foscar-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grycap%2Foscar-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grycap","download_url":"https://codeload.github.com/grycap/oscar-cli/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245015821,"owners_count":20547478,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","faas","kubernetes","oscar","serverless"],"created_at":"2024-10-02T15:04:35.938Z","updated_at":"2026-01-27T16:11:07.151Z","avatar_url":"https://github.com/grycap.png","language":"Go","readme":"![OSCAR-CLI logo](images/oscar-cli.png)\n\n[![build](https://github.com/grycap/oscar-cli/actions/workflows/main.yaml/badge.svg)](https://github.com/grycap/oscar-cli/actions/workflows/main.yaml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/grycap/oscar-cli)](https://goreportcard.com/report/github.com/grycap/oscar-cli)\n[![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go\u0026logoColor=white\u0026style=flat)](https://pkg.go.dev/github.com/grycap/oscar-cli)\n[![License](https://img.shields.io/github/license/grycap/oscar-cli)](https://github.com/grycap/oscar-cli/blob/main/LICENSE)\n\nOSCAR-CLI provides a command line interface to interact with [OSCAR](https://github.com/grycap/oscar) clusters in a simple way. It supports service management, workflows definition from FDL (Functions Definition Language) files and the ability to manage files from OSCAR's compatible storage providers (MinIO, Amazon S3 and Onedata). The folder [`example-workflow`](https://github.com/grycap/oscar-cli/tree/main/example-workflow) contains all the necessary files to create a simple workflow to test the tool. \n\n## Download\n\n### Releases\n\nThe easy way to download OSCAR-CLI is through the github [releases page](https://github.com/grycap/oscar-cli/releases). There are binaries for multiple platforms and OS. If you need a binary for another platform, please open an [issue](https://github.com/grycap/oscar-cli/issues).\n\n### Install from source\n\nIf you have [go](https://golang.org/doc/install) installed and [configured](https://github.com/golang/go/wiki/SettingGOPATH), you can get it from source directly by executing:\n\n```sh\ngo install github.com/grycap/oscar-cli@latest\n```\n\n## Available commands\n\nThe documentation is available on [OSCAR's web for CLI](https://docs.oscar.grycap.net/oscar-cli/). A [video tutorial](https://youtu.be/itaKJyd9QX4) is available on YouTube.\n\n  - [apply](#apply)\n  - [cluster](#cluster)\n    - [add](#add)\n    - [default](#default)\n    - [info](#info)\n    - [list](#list)\n    - [delete](#delete)\n  - [hub](#hub)\n    - [list](#list-2)\n    - [deploy](#deploy)\n    - [validate](#validate)\n  - [service](#service)\n    - [get](#get)\n    - [list](#list-1)\n    - [delete](#delete-1)\n    - [run](#run)\n    - [logs list](#logs-list)\n    - [logs get](#logs-get)\n    - [logs delete](#logs-delete)\n    - [get-file](#get-file)\n    - [put-file](#put-file)\n    - [list-files](#list-files)\n  - [bucket](#bucket)\n    - [list](#list-3)\n  - [interactive](#interactive)\n  - [version](#version)\n  - [help](#help)\n\n### apply\n\nApply a FDL file to create or edit services in clusters.\n\n```\nUsage:\n  oscar-cli apply FDL_FILE [flags]\n\nAliases:\n  apply, a\n\nFlags:\n      --config string   set the location of the config file (YAML or JSON)\n  -c, --cluster string  override the cluster id defined in the FDL file\n  -h, --help            help for apply\n```\n\n### cluster\n\nManages the configuration of clusters.\n\n#### Subcommands\n\n##### add\n\nAdd a new existing cluster to oscar-cli.\n\n```\nUsage:\n  oscar-cli cluster add IDENTIFIER ENDPOINT {USERNAME {PASSWORD | --password-stdin} | --oidc-account-name ACCOUNT} [flags]\n\nAliases:\n  add, a\n\nFlags:\n      --disable-ssl                disable verification of ssl certificates for the added cluster\n  -h, --help                       help for add\n  -o, --oidc-account-name string   OIDC account name to authenticate using oidc-agent. Note that oidc-agent must be started and properly configured\n                                   (See: https://indigo-dc.gitbook.io/oidc-agent/)\n      --password-stdin             take the password from stdin\n\nGlobal Flags:\n      --config string   set the location of the config file (YAML or JSON)\n```\n\n##### default\n\nShow or set the default cluster.\n\n```\nUsage:\n  oscar-cli cluster default [flags]\n\nAliases:\n  default, d\n\nFlags:\n  -h, --help         help for default\n  -s, --set string   set a default cluster by passing its IDENTIFIER\n\nGlobal Flags:\n      --config string   set the location of the config file (YAML or JSON)\n```\n\n##### info\n\nShow information of an OSCAR cluster.\n\n```\nUsage:\n  oscar-cli cluster info [flags]\n\nAliases:\n  info, i\n\nFlags:\n  -c, --cluster string   set the cluster\n  -h, --help             help for info\n\nGlobal Flags:\n      --config string   set the location of the config file (YAML or JSON)\n\n##### status\n\nShow the status reported by the OSCAR Manager API, including node metrics, deployment readiness and MinIO statistics.\n\n```\nUsage:\n  oscar-cli cluster status [flags]\n\nAliases:\n  status, s\n\nFlags:\n  -c, --cluster string   set the cluster\n  -o, --output string    output format (yaml or json) (default \"yaml\")\n  -h, --help             help for status\n\nGlobal Flags:\n      --config string   set the location of the config file (YAML or JSON)\n```\n\n##### list\n\nList the configured OSCAR clusters.\n\n```\nUsage:\n  oscar-cli cluster list [flags]\n\nAliases:\n  list, ls\n\nFlags:\n  -h, --help   help for list\n\nGlobal Flags:\n      --config string   set the location of the config file (YAML or JSON)\n```\n\n##### delete\n\nDelete a cluster from the configuration file.\n\n```\nUsage:\n  oscar-cli cluster delete IDENTIFIER [flags]\n\nAliases:\n  delete, d, del, remove, rm\n\nFlags:\n  -h, --help   help for delete\n\nGlobal Flags:\n      --config string   set the location of the config file (YAML or JSON)\n```\n\n### hub\n\nBrowse curated service definitions published in OSCAR Hub.\n\n#### Subcommands\n\n##### list\n\nList curated OSCAR services available in the Hub.\n\n```\nUsage:\n  oscar-cli hub list [flags]\n\nAliases:\n  list, ls\n\nFlags:\n      --json          print the list in JSON format\n      --owner string  GitHub owner that hosts the curated services (default \"grycap\")\n      --path string   subdirectory inside the repository that contains the services\n      --ref string    Git reference (branch, tag, or commit) to query (default \"main\")\n      --repo string   GitHub repository that hosts the curated services (default \"oscar-hub\")\n\nGlobal Flags:\n      --config string   set the location of the config file (YAML or JSON)\n```\n\n##### deploy\n\nDeploy a curated OSCAR service into a configured cluster.\n\n```\nUsage:\n  oscar-cli hub deploy SERVICE-SLUG [flags]\n\nFlags:\n  -c, --cluster string  set the cluster\n      --local-path string  use a local directory containing the RO-Crate metadata instead of fetching it from GitHub\n      --owner string    GitHub owner that hosts the curated services (default \"grycap\")\n      --path string     subdirectory inside the repository that contains the services\n      --ref string      Git reference (branch, tag, or commit) to query (default \"main\")\n  -n, --name string     override the OSCAR service and primary bucket names during deployment\n      --repo string     GitHub repository that hosts the curated services (default \"oscar-hub\")\n\nGlobal Flags:\n      --config string   set the location of the config file (YAML or JSON)\n```\n\nDefault curated source: https://github.com/grycap/oscar-hub/tree/main\n\n##### validate\n\nRun the acceptance tests defined in a curated RO-Crate against a deployed service.\n\n```\nUsage:\n  oscar-cli hub validate SERVICE-SLUG [flags]\n\nFlags:\n  -c, --cluster string   set the cluster\n      --local-path string  use a local directory containing the RO-Crate metadata instead of fetching it from GitHub\n      --owner string     GitHub owner that hosts the curated services (default \"grycap\")\n      --path string      subdirectory inside the repository that contains the services\n      --ref string       Git reference (branch, tag, or commit) to query (default \"main\")\n  -n, --name string      override the OSCAR service name during validation\n      --repo string      GitHub repository that hosts the curated services (default \"oscar-hub\")\n\nGlobal Flags:\n      --config string   set the location of the config file (YAML or JSON)\n```\n\n### service\n\nManages the services within a cluster.\n\n#### Subcommands\n\n##### get\n\nGet the definition of a service.\n\n```\nUsage:\n  oscar-cli service get SERVICE_NAME [flags]\n\nAliases:\n  get, g\n\nFlags:\n  -c, --cluster string   set the cluster\n  -h, --help             help for get\n\nGlobal Flags:\n      --config string   set the location of the config file (YAML or JSON)\n```\n\n##### list\n\nList the available services in a cluster.\n\n```\nUsage:\n  oscar-cli service list [flags]\n\nAliases:\n  list, ls\n\nFlags:\n  -c, --cluster string   set the cluster\n  -h, --help             help for list\n\nGlobal Flags:\n      --config string   set the location of the config file (YAML or JSON)\n```\n\n##### delete\n\nRemove a service from the cluster.\n\n```\nUsage:\n  oscar-cli service delete SERVICE_NAME... [flags]\n\nAliases:\n  delete, d, del, remove, rm\n\nFlags:\n  -c, --cluster string   set the cluster\n  -h, --help             help for delete\n\nGlobal Flags:\n      --config string   set the location of the config file (YAML or JSON)\n```\n\n##### run\n\nInvoke a service synchronously (a Serverless backend in the cluster is required).\n\n```\nUsage:\n  oscar-cli service run SERVICE_NAME {--file-input | --text-input} [flags]\n\nAliases:\n  run, invoke, r\n\nFlags:\n  -c, --cluster string      set the cluster\n  -e, --endpoint string     endpoint of a non registered cluster\n  -f, --file-input string   input file for the request\n  -h, --help                help for run\n  -o, --output string       file path to store the output\n  -i, --text-input string   text input string for the request\n  -t, --token string        token of the service\n\n\nGlobal Flags:\n      --config string   set the location of the config file (YAML or JSON)\n```\n\n##### logs list\n\nList the logs from a service.\n\n```\nUsage:\n  oscar-cli service logs list SERVICE_NAME [flags]\n\nAliases:\n  list, ls\n\nFlags:\n  -h, --help             help for list\n  -s, --status strings   filter by status (Pending, Running, Succeeded or Failed), multiple values can be specified by a comma-separated string\n\nGlobal Flags:\n  -c, --cluster string   set the cluster\n      --config string    set the location of the config file (YAML or JSON)\n```\n\n##### logs get\n\nGet the logs from a service's job.\n\n```\nUsage:\n  oscar-cli service logs get SERVICE_NAME [JOB_NAME] [flags]\n\nAliases:\n  get, g\n\nFlags:\n  -h, --help              help for get\n  -l, --latest            get logs from the most recent job\n  -t, --show-timestamps   show timestamps in the logs\n\nGlobal Flags:\n  -c, --cluster string   set the cluster\n      --config string    set the location of the config file (YAML or JSON)\n```\n\n##### logs delete\n\nDelete a service's job along with its logs.\n\n```\nUsage:\n  oscar-cli service logs delete SERVICE_NAME {JOB_NAME... | --succeeded | --all} [flags]\n\nAliases:\n  delete, d, del, remove, rm\n\nFlags:\n  -a, --all         remove all logs from the service\n  -h, --help        help for remove\n  -s, --succeeded   remove succeeded logs from the service\n\nGlobal Flags:\n  -c, --cluster string   set the cluster\n      --config string    set the location of the config file (YAML or JSON)\n```\n\n##### get-file\n\nGet a file from a service's storage provider.\n\nThe STORAGE_PROVIDER argument follows the format STORAGE_PROVIDER_TYPE.STORAGE_PROVIDER_NAME,\nbeing the STORAGE_PROVIDER_TYPE one of the three supported storage providers (MinIO, S3 or Onedata)\nand the STORAGE_PROVIDER_NAME is the identifier for the provider set in the service's definition.\nIf STORAGE_PROVIDER is not provided, the first output provider defined in the service is used.\nPassing `--download-latest-into[=PATH]` fetches the newest object detected under the provided remote path.\nWhen `PATH` refers to a directory (or ends with a path separator) the file is saved there keeping its original filename.\nIf `PATH` points to a file (for example, has an extension), that exact local filename is used.\nIf `REMOTE_PATH` is omitted while using `--download-latest-into`, the default output path configured for that provider is used instead.\n\nFile downloads display a progress bar whenever the transfer size is known. Use `--no-progress` to disable the bar.\nOn success the command prints the absolute path to the downloaded file.\n\n```\nUsage:\n  oscar-cli service get-file SERVICE_NAME [STORAGE_PROVIDER] [REMOTE_PATH] [LOCAL_FILE] [flags]\n\nAliases:\n  get-file, gf\n\nFlags:\n  -c, --cluster string        set the cluster\n  -h, --help                  help for get-file\n      --download-latest-into[=PATH]\n                              download the most recent file (optionally place it inside PATH when it is a directory, or use PATH as the exact filename)\n      --no-progress           disable progress bar output\n\nGlobal Flags:\n      --config string   set the location of the config file (YAML or JSON)\n```\n\n##### put-file\n\nPut a file in a service's storage provider.\n\nThe STORAGE_PROVIDER argument follows the format STORAGE_PROVIDER_TYPE.STORAGE_PROVIDER_NAME,\nbeing the STORAGE_PROVIDER_TYPE one of the three supported storage providers (MinIO, S3 or Onedata)\nand the STORAGE_PROVIDER_NAME is the identifier for the provider set in the service's definition.\nIf STORAGE_PROVIDER is not provided, the command defaults to `minio.default`.\nIf REMOTE_FILE is not provided, the file is uploaded under the input path configured for that provider using the local file name.\n\nFile uploads display a progress bar when the local file size is known. Use `--no-progress` to disable the bar.\n\n```\nUsage:\n  oscar-cli service put-file SERVICE_NAME [STORAGE_PROVIDER] LOCAL_FILE [REMOTE_FILE] [flags]\n\nAliases:\n  put-file, pf\n\nFlags:\n  -c, --cluster string   set the cluster\n      --no-progress      disable progress bar output\n  -h, --help             help for put-file\n\nGlobal Flags:\n      --config string   set the location of the config file (YAML or JSON)\n```\n\n##### list-files\n\nList files from a service's storage provider path.\n\nThe STORAGE_PROVIDER argument follows the format STORAGE_PROVIDER_TYPE.STORAGE_PROVIDER_NAME,\nbeing the STORAGE_PROVIDER_TYPE one of the three supported storage providers (MinIO, S3 or Onedata)\nand the STORAGE_PROVIDER_NAME is the identifier for the provider set in the service's definition.\n\n```\nUsage:\n  oscar-cli service list-files SERVICE_NAME STORAGE_PROVIDER REMOTE_PATH [flags]\n\nAliases:\n  list-files, list-file, lsf\n\nFlags:\n  -c, --cluster string   set the cluster\n  -h, --help             help for list-files\n\nGlobal Flags:\n      --config string   set the location of the config file (YAML or JSON)\n```\n\n### bucket\n\nInspect and manage OSCAR buckets to review their contents.\n\n#### Subcommands\n\n##### list\n\nList the objects stored in a bucket.\n\n```\nUsage:\n  oscar-cli bucket list BUCKET_NAME [flags]\n\nAliases:\n  list, ls\n\nFlags:\n  -c, --cluster string   set the cluster\n  -h, --help             help for list\n  -o, --output string    output format (table or json) (default \"table\")\n      --all              automatically retrieve every page of objects\n      --limit int        maximum number of objects per request (defaults to server settings)\n      --page string      continuation token returned by a previous call\n      --prefix string    filter objects by key prefix\n\nGlobal Flags:\n      --config string   set the location of the config file (YAML or JSON)\n```\n\n### interactive\n\nLaunch an interactive terminal interface to browse OSCAR clusters and services.\n\n```\nUsage:\n  oscar-cli interactive [flags]\n\nAliases:\n  interactive, ui\n\nFlags:\n      --config string   set the location of the config file (YAML or JSON)\n  -h, --help            help for interactive\n```\n\nWhile the UI is running you can:\n\n- Press `q` to quit the application.\n- Press `r` to refresh services for the selected cluster.\n- Use the arrow keys or `Tab` to move between clusters and services. Selecting a service shows its details in the lower pane.\n- When viewing buckets, press `Enter` to focus the object list, use `o` to reload objects, `n`/`p` to page through results, and `a` to load every object available.\n\n### version\n\nPrint the version.\n\n```\nUsage:\n  oscar-cli version [flags]\n\nAliases:\n  version, v\n\nFlags:\n  -h, --help   help for version\n```\n\n### help\n\nHelp provides help for any command in the application.\nSimply type oscar-cli help [path to command] for full details.\n\n```\nUsage:\n  oscar-cli help [command] [flags]\n\nFlags:\n  -h, --help   help for help\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrycap%2Foscar-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrycap%2Foscar-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrycap%2Foscar-cli/lists"}