# Tilores CLI

Tilores CLI is the tool to create and manage your Tilores project and instance.

# Installation

Tilores CLI requires go to be installed. Follow the official documentation if you don't have go installed: https://golang.org/doc/install

Verify your go installation afterwards by running

go version

Afterwards, install and verify the Tilores CLI:

go install github.com/tilotech/tilores-cli@latest
tilores-cli version

# Commands

The following commands can be used with the Tilores CLI.

# deploy

Deploys an instance of Tilores into your own AWS account.

You can only deploy if you have a valid license and your AWS account has been registered by our service team (service@tilotech.io).

You must have valid credentials for your AWS account configured either via environment variables or via a credentials file. For security reasons, we do not offer flags for providing the credentials. If you are using a credentials file, you can optionally specify a profile using the --profile flag.

# Example Usage

tilores-cli deploy --region eu-west-1

# Flags

--profile: Specify the AWS profile to use.

--region: Specify the AWS region into which to deploy. Must be one of the official AWS region codes, e.g. us-east-1 for North Virginia or eu-west-1 for Ireland.

--workspace: Specify the deployment workspace/environment to deploy. e.g. production, development

--var-file: Specify the variables file path. e.g. prod.tfvars, dev.tfvars. In this example the file is placed in deployment/tilores

# destroy

Removes your instance of Tilores and all of its data from your AWS account.

You must have valid AWS credentials configured to use this command.

# Example Usage

tilores-cli destroy --region eu-west-1

# Flags

--profile: Specify the AWS profile to use.

--region: Specify the AWS region in which your Tilores instance is deployed.

--workspace: Specify the deployment workspace/environment to destroy. e.g. production, development

--var-file: Specify the variables file path. e.g. prod.tfvars, dev.tfvars. In this example the file is placed in deployment/tilores

# erase

Erases all data from the Tilores instance in your AWS account.

You must have valid AWS credentials configured to use this command.

# Example Usage

tilores-cli erase --region eu-west-1

# Flags

--profile: Specify the AWS profile to use.

--region: Specify the AWS region in which your Tilores instance is deployed.

--workspace: Specify the deployment workspace/environment to erase data from. e.g. production, development

# init

Initializes a new Tilores project with all the required files and dependencies.

# Example Usage

tilores-cli init

or

tilores-cli init my-project-folder

# Flags

--deploy-prefix: The initial prefix for resources created during the deploy phase, defaults to a random eight character string and can be changed later in the generated files.

--module-path or -m: The go module path for the generated go.mod file, defaults to the project folder name. It is best practice in go to use your repository path, e.g. github.com/foocompany/fooproject.

# plan

Plans what needs to be changed when deploying an instance of Tilores into your own AWS account.

You can only plan if you have a valid license and your AWS account has been registered by our service team (service@tilotech.io).

You must have valid AWS credentials configured to use this command.

# Example Usage

tilores-cli plan --region eu-west-1

# Flags

--profile: Specify the AWS profile to use.

--region: Specify the AWS region into which to deploy. Must be one of the official AWS region codes, e.g. us-east-1 for North Virginia or eu-west-1 for Ireland.

--workspace: Specify the deployment workspace/environment to deploy. e.g. production, development

--var-file: Specify the variables file path. e.g. prod.tfvars, dev.tfvars. In this example the file is placed in deployment/tilores

# rules simulate

Simulates the rules in rule-config.json and tries to match the provided records.

Reads the rule configuration from ./rule-config.json file.

Reads both records to match as json from standard input.

# Example Usage

cat records.json | tilores-cli rules simulate

Where records.json contains the following:

{
  "recordA": {
    "myCustomField": "same value"
  },
  "recordB": {
    "myCustomField": "same value"
  }
}

# Flags

--json or -j: Shows output as JSON

# rules test

Tests the rules in rule-config.json and checks if results match the expectations.

Reads the rule configuration from ./rule-config.json file.

Test cases are read from ./test/rules/*.json where each file represents a test case and includes a pair of records and an expectation.

Each expectation is a list of rule sets with their expected satisfied and unsatisfied rules.

# Example Usage

tilores-cli rules test

Where ./test/rules/case1.json contains the following:

{
  "recordA": {
    "myCustomField": "same value"
  },
  "recordB": {
    "myCustomField": "same value"
  },
  "expectation": {
    "ruleSets": [
      {
        "ruleSetID": "index",
        "satisfiedRules": [
          "R1EXACT"
        ],
        "unsatisfiedRules": [
          "R2OTHER"
        ]
      }
    ]
  }
}

# upgrade

Upgrades Tilores to the latest version. If the upgrade encounters any files that need to be updated, but were changed by the user, it will automatically create a backup of the old file. It is highly recommended to compare the differences and adjust the new file accordingly.

# Example Usage

tilores-cli upgrade

# version

Prints the version information of the Tilores CLI.

# Example Usage

tilores-cli version