← 返回首页
GitHub - aerogear/unifiedpush-cli: A CLI to interact with the UnifiedPush Server · GitHub
Skip to content

Navigation Menu

Toggle navigation
Sign in
Appearance settings
Search or jump to...

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Resetting focus

aerogear/unifiedpush-cli

 master
Go to file
Code

Repository files navigation

More items

UnifiedPush Client CLI

The UnifiedPush Client CLI makes it easy to interact with the UnifiedPush Server from the command line.

Prerequisites

To run the UnifiedPush Client you will need to have node installed.

Installing

Run

npm install -g @aerogear/unifiedpush-cli

That will install the latest version of the UnifiedPush Client CLI in your machine. When the installation will end, you will be able to access the client by running:

ups

Two namespaces are provided:

  • applications: contains all the commands administering applications
  • variants: contains all the commands administering variants

Applications

Creating applications

$ ups applications create --help create a new application Create application: -U, --url URL of the UPS server [string] [required] --name Name of the application to create [string] [required] --output, -o The output to be generated [string] [choices: "table", "json"] [default: "table"] [8X--- CUT]

Example

$ ups applications create -U http://localhost:9999 --name TEST-APPLICATION Application created successfully ╔══════════════════╤══════════════════════════════════════╗ ║ NAME │ PUSH-APPLICATION-ID ║ ╟──────────────────┼──────────────────────────────────────╢ ║ TEST-APPLICATION │ 5a045786-2be9-410f-9f78-9951fe1441dc ║ ╚══════════════════╧══════════════════════════════════════╝

If we want a json output:

$ ups applications create -U http://localhost:9999 --name TEST-APPLICATION-JSON -o json [{"id":"499e05eb-0829-4eef-a6f6-d20fa4a03e8e","name":"TEST-APPLICATION-JSON","description":null,"pushApplicationID":"e3026570-022f-4e31-a977-ef3df8bce00d","masterSecret":"43024cb7-e8b8-472d-862f-eb97e0f15217","developer":"admin","variants":[]}]

Deleting applications

$ ups applications delete --help delete applications Delete Applications: -U, --url URL of the UPS server [string] [required] --name Deletes all the applications with a given name [string] --app-id Deletes the application identified by the given id [string] --description Deletes all the applications matching the given description [string] --developer Deletes all the applications matching the given developer [string] [8X--- CUT]

The --name, --app-id, --description, --developer options should be used to filter the list of applications to be deleted. More than one option can be specified at once.

Example

$ ups applications delete -U http://localhost:9999 --name TEST-APPLICATION-JSON 1 application(s) deleted

Listing applications

$ ups applications list --help lists the applications Applications list: -U, --url URL of the UPS server [string] [required] --app-id Returns the application identified by the given id [string] --name Returns all the applications with a given name [string] --description Returns all the applications matching the given description [string] --developer Returns all the applications matching the given developer [string] --output, -o The output to be generated [string] [choices: "table", "json"] [default: "table"] [8X--- CUT]

Example

$ ups applications list -U http://localhost:9999 ╔══════════════════╤══════════════════════════════════════╤══════════╤═══════════════╤═══════════════╗ ║ NAME │ PUSH-APPLICATION-ID │ VARIANTS │ INSTALLATIONS │ SENT-MESSAGES ║ ╟──────────────────┼──────────────────────────────────────┼──────────┼───────────────┼───────────────╢ ║ TEST-APPLICATION │ 5a045786-2be9-410f-9f78-9951fe1441dc │ 0 │ 0 │ 0 ║ ╚══════════════════╧══════════════════════════════════════╧══════════╧═══════════════╧═══════════════╝

The --name, --app-id, --description, --developer options should be used to filter the list of applications. More than one option can be specified at once.

The --output can be used to get the result as json:

$ ups applications list -U http://localhost:9999 --output json [{"id":"c0c2d3d8-6622-4fe6-8447-80b2c4c627b5","name":"TEST-APPLICATION","description":null,"pushApplicationID":"5a045786-2be9-410f-9f78-9951fe1441dc","masterSecret":"9f0277cf-a0ce-45fb-94bc-d71aa0f08149","developer":"admin","variants":[],"metadata":{"activity":0,"deviceCount":0}}]

Renaming applications

$ ups applications rename --help rename one application Rename Application: -U, --url URL of the UPS server [string] [required] --app-id The push application ID of the app to be renamed [string] [required] --name The new name [string] [required] --output, -o The output to be generated [string] [choices: "table", "json"] [default: "table"] [8X--- CUT]

Example

$ ups applications rename -U http://localhost:9999 --app-id 5a045786-2be9-410f-9f78-9951fe1441dc --name TEST-RENAMED Application renamed successfully

Importing applications

$ ups applications import --help ups applications import Import a list of applications from a json file together with their variants. Such file can be the json output of the list command Import applications: --in Path to the json file containing the applications to be imported. [string] [required] --output, -o The output to be generated [string] [choices: "table", "json"] [default: "table"] [8X--- CUT]

Example

$ ups applications import -U http://localhost:9999 --in /tmp/apps.json 12 application(s) imported $ ups applications list -U http://localhost:9999 ╔════════════════╤══════════════════════════════════════╤══════════╤═══════════════╤═══════════════╗ ║ NAME │ PUSH-APPLICATION-ID │ VARIANTS │ INSTALLATIONS │ SENT-MESSAGES ║ ╟────────────────┼──────────────────────────────────────┼──────────┼───────────────┼───────────────╢ ║ IMPORTED-APP1 │ 8e96fa60-8833-4c1c-973a-b138a09b936b │ 0 │ 0 │ 0 ║ ╟────────────────┼──────────────────────────────────────┼──────────┼───────────────┼───────────────╢ ║ IMPORTED-APP10 │ 98632235-3f88-4ed4-91ac-e829153e58f4 │ 0 │ 0 │ 0 ║ ╟────────────────┼──────────────────────────────────────┼──────────┼───────────────┼───────────────╢ ║ IMPORTED-APP11 │ d0238581-8d43-4512-acda-c8caa35f6854 │ 4 │ 0 │ 0 ║ ╟────────────────┼──────────────────────────────────────┼──────────┼───────────────┼───────────────╢ ║ IMPORTED-APP12 │ 6b9d31cc-b375-4d62-b61f-5f51a9ea72bb │ 0 │ 0 │ 0 ║ ╟────────────────┼──────────────────────────────────────┼──────────┼───────────────┼───────────────╢ ║ IMPORTED-APP2 │ f1d0dabe-acb9-4e4c-89c2-7505df23d0c0 │ 0 │ 0 │ 0 ║ ╟────────────────┼──────────────────────────────────────┼──────────┼───────────────┼───────────────╢ ║ IMPORTED-APP3 │ 502e1881-4abe-489e-973a-b7503b636ee8 │ 0 │ 0 │ 0 ║ ╟────────────────┼──────────────────────────────────────┼──────────┼───────────────┼───────────────╢ ║ IMPORTED-APP4 │ 2eedc08c-51df-4fae-a6be-966f7cd23f29 │ 0 │ 0 │ 0 ║ ╟────────────────┼──────────────────────────────────────┼──────────┼───────────────┼───────────────╢ ║ IMPORTED-APP5 │ f2b80384-a452-4abc-950f-8a12ca3ac300 │ 0 │ 0 │ 0 ║ ╟────────────────┼──────────────────────────────────────┼──────────┼───────────────┼───────────────╢ ║ IMPORTED-APP6 │ 6f8f8957-5953-4a32-972f-40e8bd51e32f │ 0 │ 0 │ 0 ║ ╟────────────────┼──────────────────────────────────────┼──────────┼───────────────┼───────────────╢ ║ IMPORTED-APP7 │ 714867dc-6391-4d3c-8512-4187032539a1 │ 0 │ 0 │ 0 ║ ╟────────────────┼──────────────────────────────────────┼──────────┼───────────────┼───────────────╢ ║ IMPORTED-APP8 │ 4fdc0fd9-e4cb-40d9-b012-588e06525281 │ 0 │ 0 │ 0 ║ ╟────────────────┼──────────────────────────────────────┼──────────┼───────────────┼───────────────╢ ║ IMPORTED-APP9 │ 17013f9f-fc7f-4395-ba2f-ae0486d3aec2 │ 0 │ 0 │ 0 ║ ╟────────────────┼──────────────────────────────────────┼──────────┼───────────────┼───────────────╢ ║ TEST-RENAMED │ 5a045786-2be9-410f-9f78-9951fe1441dc │ 0 │ 0 │ 0 ║ ╚════════════════╧══════════════════════════════════════╧══════════╧═══════════════╧═══════════════╝

Variants

Creating variants

The create command, provides 3 different subcommands to be used to create android, ios, ios_token and web_push variants.

$ ups variants create --help create a new variant Commands: ups variants create android Create a new android variant ups variants create ios-cert Create a new iOS variant (certificate) ups variants create ios-token Create a new ios token variant. For details see: https://aerogear.github.io/aerogear-unifiedpush -server/docs/variants/ios#apns-token-authentica tion ups variants create web-push Create a new WebPush variant [8X--- CUT]

Creating Android variants

$ ups variants create android --help Create a new android variant Create Variant: -U, --url URL of the UPS server [string] [required] --app-id Id of the application owning the variant [string] [required] --name The name of the variant to be created [string] [required] --server-key The google server-key. See https://aerogear.github.io/aeroge ar-unifiedpush-server/docs/variants/android for details [string] [required] --sender-id The google sender-id. See https://aerogear.github.io/aerogea r-unifiedpush-server/docs/variants/android for details [string] [required] --secret The variant secret. This is useful if you are migrating a variant from one server to another. If not specified, it will be autogenerated [string] --description The variant description [string] --output, -o, -o The output to be generated [string] [choices: "table", "json", "table", "json"] [default: "table"] [8X--- CUT]

Example

$ ups variants create android -U http://localhost:9999 \ --app-id 5a045786-2be9-410f-9f78-9951fe1441dc \ --name ANDROID-VARIANT \ --server-key 'GOOGLE-KEY' \ --sender-id 'G-SENDER-ID' Variant created ╔═════════════════╤══════════════════════════════════════╤═════════╗ ║ NAME │ VARIANT-ID │ TYPE ║ ╟─────────────────┼──────────────────────────────────────┼─────────╢ ║ ANDROID-VARIANT │ 5f18d710-c032-4512-9e69-18c761f6bee6 │ android ║ ╚═════════════════╧══════════════════════════════════════╧═════════╝

Again, the output parameter can be specified to have a json output:

$ ups variants create android -U http://localhost:9999 \ --app-id 5a045786-2be9-410f-9f78-9951fe1441dc \ --name ANDROID-VARIANT-JSON \ --server-key 'GOOGLE-KEY' \ --sender-id 'G-SENDER-ID' \ -o json [{"id":"d19694e8-4f7a-4d3f-8dfa-c04d3f29fc59","name":"ANDROID-VARIANT-JSON","description":null,"variantID":"2ea0aa61-5ee4-4571-bc98-cd2354e8cdfb","secret":"d08a51c1-1cff-4eaf-9d83-840f1a2a6d78","developer":"admin","googleKey":"GOOGLE-KEY","projectNumber":"G-SENDER-ID","type":"android"}]

Creating ios-cert variants

$ ups variants create ios-cert --help Create a new iOS variant (certificate) Create Variant: -U, --url URL of the UPS server [string] [required] --app-id Id of the application owning the variant [string] [required] --name The name of the variant to be created [string] [required] --certificate The path to the ".p12" file containing the Apple certificate [string] [required] --passphrase The passphrase to be used to access the certificate [string] [required] --production Must be specified to create a production variant [boolean] --secret The variant secret. This is useful if you are migrating a variant from one server to another. If not specified, it will be autogenerated [string] --description The variant description [string] --output, -o, -o The output to be generated [string] [choices: "table", "json", "table", "json"] [default: "table"] [8X--- CUT]

Example

$ ups variants create ios-cert \ -U http://localhost:9999 \ --app-id 5a045786-2be9-410f-9f78-9951fe1441dc \ --name IOS-CERT-VARIANT \ --certificate /tmp/devel.pem \ --passphrase certpwd Variant created ╔══════════════════╤══════════════════════════════════════╤══════╗ ║ NAME │ VARIANT-ID │ TYPE ║ ╟──────────────────┼──────────────────────────────────────┼──────╢ ║ IOS-CERT-VARIANT │ 2cd11dbe-c8fb-483f-bcee-4122a240ab8a │ ios ║ ╚══════════════════╧══════════════════════════════════════╧══════╝

Creating ios-token variants

$ ups variants create ios-token --help Create a new ios token variant. For details see: https://aerogear.github.io/aerogear-unifiedpush-server/docs/variants/ios#apns-to ken-authentication Create Variant: -U, --url URL of the UPS server [string] [required] --app-id Id of the application owning the variant [string] [required] --name The name of the variant to be created [string] [required] --bundle-id The variant bundle-id (for example org.aerogear.PushHelloWorld) [string] [required] --team-id The variant team-id [string] [required] --key-id The variant key-id [string] [required] --private-key The variant private key as downloaded from the apple website [string] [required] --secret The variant secret. This is useful if you are migrating a variant from one server to another. If not specified, it will be autogenerated [string] --description The variant description [string] --output, -o, -o The output to be generated [string] [choices: "table", "json", "table", "json"] [default: "table"] [8X--- CUT]

Example

$ ups variants create ios-token \ -U http://localhost:9999 \ --app-id 5a045786-2be9-410f-9f78-9951fe1441dc \ --name IOS-TOKEN-VARIANT \ --bundle-id 'org.aerogear.test' \ --team-id '0123456789' \ --key-id 0123456789 \ --private-key /tmp/privateKey.pem Variant created ╔═══════════════════╤══════════════════════════════════════╤═══════════╗ ║ NAME │ VARIANT-ID │ TYPE ║ ╟───────────────────┼──────────────────────────────────────┼───────────╢ ║ IOS-TOKEN-VARIANT │ 77bb4e93-33ab-49b0-b700-e4d43cc16e9a │ ios_token ║ ╚═══════════════════╧══════════════════════════════════════╧═══════════╝

Creating web-push variants

$ ups variants create web-push --help Create a new WebPush variant Create Variant: -U, --url URL of the UPS server [string] [required] --app-id Id of the application owning the variant [string] [required] --name The name of the variant to be created [string] [required] --alias The application server contact information (this must be a mailto or an https url) [string] [required] --output, -o, -o The output to be generated [string] [choices: "table", "json", "table", "json"] [default: "table"] [8X--- CUT]

Example

$ ups variants create web-push \ -U http://localhost:9999 \ --app-id 5a045786-2be9-410f-9f78-9951fe1441dc \ --name WEBPUSH-VARIANT \ --alias 'mailto:test@aerogear.com' Variant created ╔═════════════════╤══════════════════════════════════════╤══════════╗ ║ NAME │ VARIANT-ID │ TYPE ║ ╟─────────────────┼──────────────────────────────────────┼──────────╢ ║ WEBPUSH-VARIANT │ 9e5125aa-bdde-4dfb-ac48-0c68379eab74 │ web_push ║ ╚═════════════════╧══════════════════════════════════════╧══════════╝

Deleting variants

$ ups variants delete --help Delete Variants: --app-id The application id [string] [required] --variant-id Deletes the variant identified by the specified id [string] --name Deletes all the variants matching the specified name [string] --developer Deletes all the variants matching the specified developer [string] --type Deletes all the variants of the specified type [string] [8X--- CUT]

⚠️ If you don't specify any filter, the command will delete all the application variants!

Example

$ ups variants delete \ -U http://localhost:9999 \ --app-id 5a045786-2be9-410f-9f78-9951fe1441dc \ --variant-id 9e5125aa-bdde-4dfb-ac48-0c68379eab74 1 variant(s) deleted

Listing variants

lists the variants for the application identified by <app-id> List variants: -U, --url URL of the UPS server [string] [required] --app-id The application id [string] [required] --variant-id The variant id [string] --type Returns all the variants of the specified type [string] --name Returns all the variants matching the specified name[string] --developer Returns all the variants matching the specified developer [string] --output, -o, -o The output to be generated [string] [choices: "table", "json", "table", "json"] [default: "table"] [8X--- CUT]

Example

$ ups variants list -U http://localhost:9999 --app-id 5a045786-2be9-410f-9f78-9951fe1441dc ╔══════════════════════╤══════════════════════════════════════╤═══════════╗ ║ NAME │ VARIANT-ID │ TYPE ║ ╟──────────────────────┼──────────────────────────────────────┼───────────╢ ║ ANDROID-VARIANT │ 5f18d710-c032-4512-9e69-18c761f6bee6 │ android ║ ╟──────────────────────┼──────────────────────────────────────┼───────────╢ ║ ANDROID-VARIANT-JSON │ 2ea0aa61-5ee4-4571-bc98-cd2354e8cdfb │ android ║ ╟──────────────────────┼──────────────────────────────────────┼───────────╢ ║ IOS-CERT-VARIANT │ 2cd11dbe-c8fb-483f-bcee-4122a240ab8a │ ios ║ ╟──────────────────────┼──────────────────────────────────────┼───────────╢ ║ IOS-TOKEN-VARIANT │ 77bb4e93-33ab-49b0-b700-e4d43cc16e9a │ ios_token ║ ╚══════════════════════╧══════════════════════════════════════╧═══════════╝

Authentication

We currently support two kind of authentications:

  • Basic
  • Keycloak
$ ups --help ups --url <url> [auth] <command> Commands: ups applications manage the applications ups variants manage the variants Basic Auth: -u, --username username [string] -p, --password password [string] --auth-type The type of authentication [string] [choices: "basic", "keycloak"] [default: "basic"] Keycloak Auth: -u, --username username [string] -p, --password password [string] -k, --kc-url URL of the keycloak server [string] --realm The authentication realm used for keycloak authentication [string] [default: "aerogear"] --client-id Client id to be used to authenticate with keycloak [string] [default: "unified-push-server-js"] --auth-type The type of authentication [string] [choices: "basic", "keycloak"] [default: "basic"] [8X--- CUT]

Basic authentication

To perform basic authentication, just pass username, password and auth-type to any command. For example to list all the applications, instead of

ups -U http://localhost:9999 applications list

you will write

ups -u username -p password -U http://localhost:9999 applications list

Keycloak authentication

Similarly to what we have seen about basic authentication, to authenticate with keycloak we just have to add the credentials to the command and the url of the keycloak server.

For example to list all the applications, instead of

ups -U http://localhost:9999 applications list

you will have to write

ups -u username -p password --kc-url http://yourkeycloak --auth-type keycloak -U http://localhost:9999 applications list

If you used a different realm and/or client-id, you will have to specify that also (--realm and --client-id options).

About

A CLI to interact with the UnifiedPush Server

Resources

License

Stars

2 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Footer

© 2026 GitHub, Inc.