Skip to main content

Files.com CLI vs. Terraform

The Files.com Command Line Interface (CLI) app and Terraform are the two main ways to manage a Files.com site programmatically. They overlap in what they can configure, but they take fundamentally different approaches: the CLI app runs imperative commands, and Terraform manages declarative state.

This guide helps you pick between them.

Imperative vs. Declarative

The CLI app is imperative. You tell it what to do, one action at a time. Upload this file, create that user, change this permission. The result depends on what you ran and in what order. The CLI app is well-suited to interactive sessions, shell scripts, cron jobs, and CI/CD pipelines, where the steps are the unit of work.

Terraform is declarative. You write configuration files in Terraform Configuration LanguageExternal LinkThis link leads to an external website and will open in a new tab that describe the end state of your Files.com site, and Terraform reconciles the live site to match. Terraform tracks state, computes diffs against the configuration, and applies the minimum set of changes. The configuration files become the source of truth for the site's structure.

When to Use the Files.com CLI

Use the CLI app when the work is a discrete action or a one-off batch:

  • Uploading or downloading files on a schedule.
  • Syncing a local folder to a remote path.
  • Creating a small number of users or making targeted permission changes.
  • Setting up a temporary share for a one-time hand-off.
  • Stitching Files.com operations into an existing shell script, cron job, or CI/CD pipeline.

The CLI app has a low setup cost and a short feedback loop. You install it, authenticate, and run commands. There is no state file to manage and no plan-and-apply step.

When to Use Terraform

Use Terraform when the unit of work is the configuration of the site itself, not a single action against it. The cases where Terraform pays off:

  • Managing multiple environments (Production, QA, Staging) that need to stay in parity.
  • Provisioning a full folder hierarchy, user set, group set, and automation set as one coordinated change.
  • Putting site configuration under source control so changes are peer-reviewed, auditable, and reversible.
  • Operating under change-management or compliance requirements that expect a written plan before a change is applied.

Terraform has a higher initial setup cost than the CLI app — you write configuration, manage state, and learn the plan-and-apply workflow — and that cost is what buys the reproducibility and review surface.

Using Both Together

Most Files.com customers using Terraform also use the CLI app. Terraform manages the durable structure of the site: folders, users, groups, permissions, automations. The CLI app handles the operational traffic that flows through that structure: file uploads, downloads, batch transfers, ad-hoc administrative actions. The two tools do not conflict, because they operate on different objects.

A common pattern: Terraform creates and maintains the folder structure and user accounts for a department, and a CLI-driven cron job delivers the department's daily files into one of those folders.

Side-by-Side Comparison

FeatureFiles.com CLI AppTerraform
ModelImperative — run commandsDeclarative — define the end state
InterfaceTerminal commandsConfiguration files (Terraform Configuration Language)
Source of truthThe live siteThe configuration files
Change previewNone — commands take effect immediatelyterraform plan shows the diff before apply
Setup complexityLowModerate
Best forDay-to-day operations, scripting, ad-hoc administrationMulti-environment management, source-controlled configuration