IDU Verb Documentation

Introduction to IDU Verbs

In order for the IDU to perform useful work, we need to tell it what to do. This is accomplished through the use of verbs. Only one verb may be specified at runtime. Each verb has its own set of parameters that are either required or optional. If a verb is invoked, it must be placed before any verb parameters. You may choose from the list below to jump to a specific verb's documentation, or you can find more about Issuetrak Deployment Fundamentals here.

Deploy
DeployNewTestSite
GenerateDeploymentConfiguration
GenerateAPIKey
VerifyConfiguration
GetSiteDetails
VerifySQLCredentials
GetIISConfiguration
VerifyDotNetHostingBundleInstalled
GetAccountLicensingDetails
GenerateLicenseRequest
 


Deploy

The verb Deploy will deploy Issuetrak with the options specified.

.\issuetrak.deployment.utility deploy -c yoursite.json -x database

Verb parameters:

-i, --site

Deploys the sites specified by a space-separated list of site names. If this parameter is omitted, then all sites listed in the JSON will be deployed. Sitename consists of the name of the root website and the full IIS application path separated with a period, as well as the spaces and slashes replaced with periods.

-x, --context

Specifies which machine the deployment is running on. Valid options are “web”, “database”, “services” and “all”. If this option is omitted, it will default to “all”. Note that the JSON must provide administrative SQL authentication regardless of which context is specified. This is because the IDU performs a mandatory check of the site version prior to attempting deployment. Additionally, please note that the ‘web' and 'services’ contexts can only be deployed on the web server at this time.

-c, --config

Specifies the path and filename of the JSON configuration file. If no name or path is specified, the IDU will look in the root of the distribution for deployment.json.

-d, --distro

Specifies the path to the folder containing the distribution. If this is omitted, the path specified in the JSON is used. If the JSON doesn't provide a location, then the folder the IDU is run from is assumed to be the distribution.

--agree-to-terms-of-service

Pre-emptively acknowledges the Issuetrak Terms of Service before beginning deployment. If this parameter is not specified during deployment, the IDU will prompt the administrator to agree to the Terms of Service before proceeding.

Usage Example 1

.\issuetrak.deployment.utility deploy -c yoursite.json -x database

Deploy Issuetrak using the JSON file yoursite.json, but only using the database context.

Usage Example 2

.\issuetrak.deployment.utility deploy -d “C:\temp\Issuetrak.xxxx” -c yoursite.json -i site1 site2

Deploy Issuetrak from a particular distribution folder, using the JSON yoursite.json, but only the sites named site1 and site2 designated within the JSON. Since no deployment context is provided, all contexts of Issuetrak will be deployed.

back to top

DeployNewTestSite

The verb DeployNewTestSite will deploy a testing instance of Issuetrak with the options specified.

.\issuetrak.deployment.utility deploynewtestsite -c yoursite.json -x database

Verb parameters:

-r, --database-backup-to-restore

Specifies the name of the database backup to restore for the Test Site. Backup must be located in Test Site's SQL Server's default backup location. If omitted, a new database will be created.

--refresh

For Issuetrak's internal use only.

-i, --site

Deploys the test sites specified by a space-separated list of site names. If this parameter is omitted, then all sites listed in the JSON will be deployed. Sitename consists of the name of the root website and the full IIS application path separated with a period, as well as the spaces and slashes replaced with periods.

-x, --context

Specifies which machine the deployment is running on. Valid options are “web”, “database”, “services” and “all”. If this option is omitted, it will default to “all”. Note that the JSON must provide administrative SQL authentication regardless of which context is specified. This is because the IDU performs a mandatory check of the site version prior to attempting deployment. Additionally, please note that the ‘web' and 'services’ contexts can only be deployed on the web server at this time.

-c, --config

Specifies the path and filename of the JSON configuration file. If no name or path is specified, the IDU will look in the root of the distribution for deployment.json.

-d, --distro

Specifies the path to the folder containing the distribution. If this is omitted, the path specified in the JSON is used. If the JSON doesn't provide a location, then the folder the IDU is run from is assumed to be the distribution.

--agree-to-terms-of-service

Pre-emptively acknowledges the Issuetrak Terms of Service before beginning deployment. If this parameter is not specified during deployment, the IDU will prompt the administrator to agree to the Terms of Service before proceeding.

Usage Example 1

.\issuetrak.deployment.utility deploynewtestsite -c yoursite.json -x database

Deploy a testing instance of Issuetrak using the JSON file yoursite.json, but only using the database context.

Usage Example 2

.\issuetrak.deployment.utility deploynewtestsite -d “C:\temp\Issuetrak.xxxx” -c yoursite.json -i site1 site2

Deploy a testing instance of Issuetrak from a particular distribution folder, using the JSON yoursite.json, but only the sites named site1 and site2 designated within the JSON. Since no deployment context is provided, all contexts of Issuetrak will be deployed.

back to top

GenerateDeploymentConfiguration

The verb GenerateDeploymentConfiguration will output configuration information for the Issuetrak sites found on the web server. The output will never contain valid SQL credentials, as the IDU does not have the ability to determine these on its own.

.\issuetrak.deployment.utility generatedeploymentconfiguration -i Your.Issuetrak.Site --outfile "path\yoursite.json"

Verb parameters:

-i, --site

Generates a configuration for only the site specified as sitename. If omitted, all sites will be included in the generated configuration. Sitename consists of the name of the root website and the full IIS application path separated with a period, as well as the spaces and slashes replaced with periods.

-f, --outfile "path\yoursite.json"

Tells the IDU to write the output to the specified file instead of the console window. Useful for obtaining a starting configuration file for an environment with pre-existing Issuetrak sites.

The specified file does not need to exist prior to running this command.

Usage Example 1:

.\issuetrak.deployment.utility generatedeploymentconfiguration -i Your.Issuetrak.Site --outfile "path\yoursite.json"

Generate a deployment configuration for the application “Your Issuetrak Site” , which has an application path of /. Note that the sitename converts to “Your.Issuetrak.Site”. Writes the configuration information to the file yoursite.json that is within the folder called path.

Usage Example 2:

.\issuetrak.deployment.utility generatedeploymentconfiguration --outfile "path\yoursite.json"

Generates a deployment configuration for all sites detected on the web server. Writes the configuration information to yoursite.json that is within the folder called path.

GenerateAPIKey

The verb GenerateAPIKey generates an API key within the console window. The output contains the correct syntax to be copied and pasted into the appropriate location within a JSON. If a site is deployed with the API key specified, then that API key will be required to authenticate to the API after deployment.

.\issuetrak.deployment.utility generateapikey

Example Output:

{
"ApiKey": "3HpE9Ho4XAZFdFnRh1pFRhgVuKkPzWYQIZGYgbnEII8="
}

You may also choose to save the output of this to make it easier to find the key you generated:

.\issuetrak.deployment.utility generateapikey > apikey.txt

VerifyConfiguration

The verb VerifyConfiguration parses the specified JSON to determine whether required values are filled. This does not validate the values, it merely checks to see if they are present.

.\issuetrak.deployment.utility verifyconfiguration -c .\twosites.json

Parameters:

-c, --config

Specifies the full path and filename of the JSON to verify. If omitted, the IDU will look for the file deployment.json in the console's current folder.

-d, --distro

Specifies the path to the folder containing the distribution. If this parameter is omitted at runtime, the IDU will use the DistributionPath value in the JSON if specified. If the DistributionPath value isn‘t specified in the JSON, and this parameter isn't passed to the IDU, then the IDU will assume the console’s current folder contains the distribution.

Usage Example

.\issuetrak.deployment.utility verifyconfiguration -c .\twosites.json

Verifies that the required values are filled in the file twosites.json.

Example Output - Successful
2017-08-30 18:25:20.4071 | verifying the configuration file integrity
2017-08-30 18:25:20.6441 | verifying the configuration file integrity was successful

Example Output - Failure
2017-09-06 14:59:09.4726 | verifying the configuration file integrity
2017-09-06 14:59:09.6196 | verifying the configuration file integrity was successful
2017-09-06 14:59:09.6286 | Configuration file entry ‘Sites’ is blank or missing.
2017-09-06 14:59:09.6286 | At least one Site entry must exist in the configuration.

GetSiteDetails

The verb GetSiteDetails will provide very brief IIS and database information about a site specified in a JSON. This is useful for determining how long it might take to back up website files and database information, as well a count of total users versus how many are licensed.

.\issuetrak.deployment.utility getsitedetails -i Your.Web.Site -c twosites.json

Verb parameters:

-i, --site

Provides details for a specific site, specified by “sitename”. If omitted, all sites listed in the JSON will be included.

-c, --config

Provides path and filename of the JSON this verb should scan. If omitted, the IDU will look for deployment.json in the console's current folder.

Usage Example

.\issuetrak.deployment.utility getsitedetails -i Your.Web.Site -c twosites.json

Targets the site called Your Web Site, which has an entry in the JSON named twosites.json.

Example Output
{
    "Your.Web.Site": {
      "Name": "Your.Web.Site",
      "Version": "xx.x.xxxx",
      "TotalUserCount": 1,
      "LicensedUserCount": 1,
      "DatabaseSizeInBytes": 84934656.0,
      "TotalSiteFileSizeWithExclusions": 71538838
  }
}

VerifySQLCredentials

The verb VerifySQLCredentials will verify SQL that credentials are valid by attempting to authenticate to the designated SQL server. If validation fails, the output on the Message line will give an indication of what went wrong.

.\issuetrak.deployment.utility verifysqlcredentials -s servername -u sa -p yourpassword

Verb parameters:

-s, --server

Mandatory. Specifies the server to verify credentials against. This can be a hostname or IP.

-u, --username

Specifies the username to verify. This must exist as a SQL account on the designated server.

-p, --password

Specifies the password to verify.

Usage Example

.\issuetrak.deployment.utility verifysqlcredentials -s yourserver -u sa -p yourpassword

Attempts to authenticate to the server called yourserver, using username sa and password yourpassword.

Example Output - Successful
{
"Server": "yourserver",
"IsVerifed": true,
"Message": ""
}

Example Output - Failure
{
"Server": "yourserver",
"IsVerifed": false,
"Message": "Login failed for user ‘sa’."
}

GetIISConfiguration

The verb GetIISConfiguration pulls information from IIS about ALL (not just Issuetrak) web sites currently running on the server and dumps them to the screen as JSON.

.\issuetrak.deployment.utility getiisconfiguration
Example Output
{
  "Websites": [
    {
      "Id": 1,
      "Name": "Default Web Site",
      "Bindings": [
        {
          "Protocol": 0,
          "HostName": "",
          "IpAddress": "*",
          "Port": 80
        }
      ],
      "Applications": [
        {
          "WebsiteName": "Default Web Site",
          "WebsiteId": 1,
          "ApplicationPoolName": "Issuetrak Classic Pool",
          "Path": "/",
          "PhysicalPath": "D:\\WebData\\Issuetrak",
          "IsAnonymousAuthenticationEnabled": true,
          "IsWindowsAuthenticationEnabled": false
        },
          ]
    },
     ],
  "Certificates": []
}

The output from this command can be redirected to a file to make it easier to view:

.\issuetrak.deployment.utility getiisconfiguration > yoursite.json

VerifyDotNetHostingBundleInstalled

The verb VerifyDotNetHostingBundleInstalled determines whether the .NET 6.0 Hosting Bundle is installed on the server, then and displays the resulting information on screen as JSON. The .NET 6.0 Hosting Bundle is required in order to install and use APIv2.

.\issuetrak.deployment.utility verifydotnethostingbundleinstalled
Example Output
{
  "RequireVersionAtLeast": "6.0",
  "IsInstalled": true,
  "Message": ""
}

back to top


VerifyDotNetHostingBundleInstalled

GetAccountLicensingDetails

The verb GetAccountLicensingDetails will look for an authorization file matching the specified Site ID in a specific manual authorization folder. This is a part of the manual license validation process.

.\issuetrak.deployment.utility getaccountlicensingdetails --site-id 11111 --manual-authorization-folder C:\temp\license\
Example Output
PS C:\temp\issuetrak-16.0.0-RC4-875161926> .\Issuetrak.Deployment.Utility.exe getaccountlicensingdetails -i 11111
{
  "11111": {
    "Modules": [
      "IdentityManagement",
      "AssetManagement",
      "Billing",
      "Survey"
    ],
    "LicensedUsers": 15,
    "CreatedDate": "2023-05-24T12:39:12.534-04:00",
    "DoesExpire": true,
    "ExpirationDate": "2023-07-18T00:00:00",
    "Model": "Support",
    "IsTestLicense": false,
    "SiteId": "11111",
    "HasIdentityManagement": false,
    "HasAssetManagement": true,
    "HasBilling": true,
    "HasSurvey": false,
    "Status": "Decoded"
  }
}

back to top


VerifyDotNetHostingBundleInstalled

GenerateLicenseRequest

The verb GenerateLicenseRequest creates a manual license authorization request file for a specific site, to be provided to Issuetrak Support when the server is unable to obtain license information on its own. This is a part of the manual license validation process.

Verb parameters:

-i, --site

Create license request file only for the site(s) specified by the space-separated list of site names. If omitted, all sites listed in the specified configuration will have request files generated.

-c, --config

Defaults to .\deployment.json. Specifies the full path and filename of the JSON configuration file.

-m, --manual-authorization-folder

Specifies the path to the folder where the license request file(s) should be saved. If not specified, the current working folderis used.

-n, --new-site-id

Create license request file for a new site with the specified Site ID. If specified, -c/--config and -i/--site should not be specified.

Usage Example

.\issuetrak.deployment.utility generatelicenserequest --new-site-id 12345
This command outputs a JSON file, rather than console text. The resulting JSON can be used as a part of the manual validation process.

back to top