Auto Subscribe CLI Tool
The integration auto subscribe CLI tool allows you to subscribe a one or more users to one or more specified integrations. Prior to running the script, you should ensure that the integration has been properly configured for all users (i.e., API keys and other required options have been set to "Only Admins can view and edit" or "Users can view only").
If a user does not have access to the specified integration, they will not be subscribed to the integration.
Installation
To install the script, you can download it directly to your Polarity Server and place it inside your /app directory.  You should replace the existing script of the same name.  You can use the following commands to install the script into the correct location:
cd /app
sudo wget https://dl.polarity.io/C7BFBB1CF5A58C7DBA57CD0941F635BF1895366064713E88DAA7F05A5295B8B1/PROD/server/scripts/polarity-integration-auto-subscribe-3.0.6.tgz
sudo tar -xvzf polarity-integration-auto-subscribe-3.0.6.tgz
cd polarity-integration-auto-subscribe
chmod a+x polarity-integration-auto-subscribe.shTo confirm that you have the correct script installed you can run the --version command:
cd /app/polarity-integration-auto-subscribe
sudo ./polarity-integration-auto-subscribe.sh --versionYou should see the following output:
Polarity CLI Integration Auto Subscribe v3.0.6Options
To quickly view all the available options you can run the following command:
sudo ./polarity-integration-auto-subscribe.sh --helpThis will output the following:
Subscribe users to integrations
Options:
  --help                Show help  [boolean]
  --version             Show version number  [boolean]
  --username            Polarity Username to authenticate as  [string]
  --password            Password for the given Polarity username  [string]
  --url                 Polarity server url to include schema  [string] [required]
  --config              Path to the Polarity Server's config file.  [string] [default: "/app/polarity-server/config/config.js"]
  --env                 Path to the Polarity Server's .env file.  [string] [default: "/app/polarity-server/.env"]
  --integrations        A comma delimited list of integration ids to search  [string] [required]
  --subscribeUsernames  A comma delimited list of usernames to subscribe to the provided integration list.  If not provided all users granted explicit access to the integration will be subscribed (including admins).  [string] [default: ""]
  --includeAdmins       If provided, Polarity admin users will also be subscribed to the integration even if they do not have explicit access.  [boolean] [default: false]
  --simulate            If provided, the loader will log a preview of the actions it would take but no actions will be taken.  [boolean] [default: false]
  --rejectUnauthorized  If provided, the loader will reject unauthorized SSL connections  [boolean] [default: true]
  --proxy               If provided, the connection to the Polarity server will use the provided proxy setting  [string] [default: ""]
  --logging             The logging level for the script.  [string] [choices: "error", "warn", "info", "debug"] [default: "info"]--env
--env=<path-to-env>This is an optional flag you can use to provide an absolute path to your server's default .env file.  For most installations the default value of /app/polarity-server/.env is correct and this option is not needed.
--config
--config=<path-to-config-file>This is an optional flag you can use to provide an absolute path to your server's default config.js file.  For most installations the default value of /app/polarity-server/config/config.js is correct and this option is not needed.
--url
--url=https://<polarity-server-fqdn>This is the URL of  the Polarity Server  you wish to authenticate to.  You should include the scheme https://.
--username
--username=<username>This is the username of the Polarity user you wish to authenticate to your Polarity server as
--password
--password=<password>This is the password of the Polarity user you wish to authenticate to your Polarity server as
--integrations
--integrations=<integrationDirName>
--integrations=<integrationDirName1>,<integrationDirName2>One or more integration directory names specified using a comma delimited list.
If specifying a comma delimited list, no spaces should be included between integration directory names.
Example
--integrations=arin,ldap,alientvault-otx--subscribeUsernames
--subscribeUsernames=<username1>,<username2>,<username3>A comma delimited list of usernames you would like to subscribe to the integration. If this options is not provided, all users that have explicit access to an integration will be subscribed to the specified integration(s).
Example
Subscribe a single user with the username alice:
--subscribeUsernames=aliceSubscribe multiple users:
--subscribeUsernames=alice,bob,malloryIf specifying a comma delimited list, no spaces should be included between usernames
--includeAdmins
By default, if you do not specify specific users to subscribe via the --subscribeUsernames option, the script will subscribe all users that have explicit access to the integration.  This means that only users that are listed under the Permissions tab of the integration or users that are in a group listed under the Permissions tab will be subscribed.  If you would like to subscribe all "admin" users to the integration (even if they do not have explicit access granted), you can pass in the --includeAdmins flag.
--includeAdmins--rejectUnauthorized
Set this to false if your Polarity Server has a self signed SSL certificate that is not trusted
--rejectUnauthorized=false--proxy
Set this to a proxy configuration string if you need to use a proxy to access your Polarity Server.
--proxy=https://USERNAME:PASSWORD@PROXYSERVER:PROXYPORTExample Usage
Prior to running any of the below script commands, change into the scripts directory
cd /app/polarity-integration-auto-subscribeIn all of these examples we assume we are connecting to our Polarity server hosted at https://my-polarity-server.corp with the admin user who has a password of password123!.
Subscribe a single user named polarity_user to a single integration arin
polarity_user to a single integration arinsudo ./polarity-integration-auto-subscribe.sh \
  --url=https://my-polarity-server.corp \
  --username=admin \
  --password='password123!' \
  --subscribeUsernames=polarity_user \
  --integrations=arinSubscribe all eligible users to a single integration called arin
arinsudo /polarity-integration-auto-subscribe.sh \
  --url=https://my-polarity-server.corp \
  --username=admin \
  --password='password123!' \
  --integrations=arinSubscribe a single user named polarity_user to both the arin and ldap integrations:
polarity_user to both the arin and ldap integrations:sudo /polarity-integration-auto-subscribe.sh \
  --url=https://my-polarity-server.corp \
  --username=admin \
  --password=password123! \
  --subscribeUsernames=polarity_user \
  --integrations=arin,ldapSubscribe a two users named polarity_user and polarity_user_2 to both the arin and ldap integrations:
polarity_user and polarity_user_2 to both the arin and ldap integrations:sudo /polarity-integration-auto-subscribe.sh \
  --url=https://my-polarity-server.corp \
  --username=admin \
  --password='password123!' \
  --subscribeUsernames=polarity_user,polarity_user_2 \
  --integrations=arin,ldapSubscribe all users to both arin and ldap integrations
arin and ldap integrationssudo /polarity-integration-auto-subscribe.sh \
  --url=https://my-polarity-server.corp \
  --username=admin \
  --password='password123!' \
  --integrations=arin,ldapSubscribe all eligible users including all admins to both arin and ldap integrations
sudo /polarity-integration-auto-subscribe.sh \
  --url=https://my-polarity-server.corp \
  --username=admin \
  --password='password123!' \
  --integrations=arin,ldap
  --includeAdminsLast updated