Skip to main content
Version: 1.28 (Current)

Data Security

Audience: System/Security Administrators, Low-code Engineers

Skill Prerequisites: System Administration and Maintenance

This page describes how data is protected in a Plant an App installation: where it's stored, how it's encrypted at rest and in transit, how certificates are used, and how connections to other systems are secured.

It applies to on-premises and private-cloud installations, where you run Plant an App on your own servers. In those installations, you control the servers, the database and the network, so some protections are configured by you. They're marked You configure below.

Where Data Is Stored​

DataLocation
Application data: entities, form submissions, listings, workflow and job history, logs, configurationThe Microsoft SQL Server database of the installation
Files: uploads, generated documents, exportsThe file storage you choose for each folder: local disk, a network share, or cloud storage such as Amazon S3 or Azure Blob Storage. See File Storage.
Connector secrets: API keys, passwords, tokensThe application database, encrypted (see Connector secrets)
Data in other systemsStays in those systems. Plant an App reads or writes it only when an action, listing or token calls them. See Connecting to Oracle, Db2 and Other Databases.

In an on-premises or private-cloud installation, all of this stays on your infrastructure. Plant an App sends data to an external service only when an application is built to call one, for example with Server Request, an AI add-on or an email connector.

File Storage​

Files are kept in folders, and each folder has a folder type that decides where its files are stored. You can mix them: for example, keep most folders on the network share and send large archives to cloud storage. Manage folder types in File Management > Manage Folder Types.

StorageWhere the files areTypical use
Local diskThe site folder on the web server. Three built-in folder types: Standard (plain files), Secure (files are renamed so they can only be downloaded through the site, with folder permissions checked) and Database (files are saved in the SQL Server database).A single web server
Network shareThe whole site folder is on shared storage, reached by an SMB (UNC) path: a clustered file server, a NAS or SAN, DFS, or a cloud file service such as Amazon FSx or Azure Files. Every web server uses the same files. The built-in folder types work as on a local disk.Several web servers, and the shared storage that government and enterprise data centers usually provide. See Performance, Scalability and High Availability.
Amazon S3An S3 bucket, through an S3 folder type. Needs the S3 storage add-on.Large or fast-growing files, cloud storage. See Amazon S3 Storage Integration.
Azure Blob StorageA container in an Azure storage account, through an Azure folder type (account name, account key, container).Large or fast-growing files, in Azure

Users and actions work with every folder the same way, whatever its type.

Encryption of files at rest. You configure. Encrypt the storage the files live on:

Encryption at Rest​

Database: Transparent Data Encryption (AES-256)​

You configure. SQL Server Transparent Data Encryption (TDE) encrypts the database files, the transaction log and the backups with AES-256. It's transparent to the application, so Plant an App needs no changes. Turn it on in SQL Server. TDE is available in SQL Server Enterprise edition, and in Standard edition from SQL Server 2019. See Microsoft's Transparent data encryption guide.

You can also encrypt the server disks with BitLocker, or with your private cloud's volume encryption.

Backups​

You configure. With TDE, backups are encrypted too. Without TDE, use SQL Server backup encryption with AES-256. Protect the certificate and keep a copy of it outside the server, or the backups can't be restored.

Connector secrets​

Connector values such as passwords, API keys and tokens are encrypted with AES-256 before they're saved. The key belongs to the installation. In the connector editor, secret values are shown as ******. Use Connector Encrypt to encrypt a value the same way from an action.

Store secrets in connectors, not in action parameters or tokens.

Form and listing state​

Data that Plant an App sends to the browser and receives back, such as the state of dynamic forms and the tickets in auto-login links, is encrypted with AES-256. The key is derived with PBKDF2 from the installation's machine key. The browser only receives the encrypted value, so it can't read the data.

Encrypting Application Data (AES-256)​

Applications can encrypt sensitive fields themselves before they're saved, for example a national ID number or a bank account:

ActionWhat it does
AES Encrypt / AES DecryptSymmetric encryption with AES-256 (also AES-128 and AES-192), CBC mode, PKCS#7 padding. You choose the key.
RSA Encrypt / RSA DecryptPublic-key encryption. Anyone with the public key can encrypt, and only the private key can decrypt. Use keys of 2048 bits or more.
Generate RSA KeysCreates an RSA key pair. Choose 2048 bits or more.

See Security actions for when to use each one. Passwords should never be encrypted with these actions. Let the platform's user management handle them.

Encryption in Transit​

Browser to server (HTTPS / TLS)​

You configure. Plant an App runs on IIS. Install a TLS certificate on the website (or on the load balancer in front of it), and turn on SSL Enabled and SSL Enforced in the site settings, so every page is served over HTTPS.

We recommend:

  • TLS 1.2 or later only. Disable SSL 3.0, TLS 1.0 and TLS 1.1 in Windows (SCHANNEL).
  • A certificate from a trusted certificate authority, or from your organization's PKI.
  • If TLS ends at a load balancer, encrypt the connection from the load balancer to the web servers too, unless they're on an isolated network.
  • An HSTS header, set in IIS or at the load balancer.

Server to database​

You configure. Encrypt the connection between the web servers and SQL Server with TLS. Install a certificate on SQL Server and add Encrypt=True to the connection string in web.config. Use TrustServerCertificate=True only for testing. See Microsoft's Configure SQL Server Database Engine for encrypting connections.

For Oracle and Db2, use the network encryption options of their drivers. See Connecting to Oracle, Db2 and Other Databases.

Server to other systems​

Certificate-Based Security​

UseHow
HTTPS for usersA TLS certificate on IIS or on the load balancer.
Mutual TLS to other systemsServer Request can send a client certificate from the server's certificate store, selected by thumbprint (Enterprise).
Reading a caller's certificateGet Client Certificate Details reads the client certificate a caller presented.
Single sign-onWith OpenID Connect, tokens are validated against the identity provider's signing keys, issuer and audience.
Passwordless loginPasskeys (FIDO2 / WebAuthn): only the public key is stored on the server.
Public-key encryption of dataRSA Encrypt / RSA Decrypt.
Document signaturesSign PDF, with the user's own certificate.

Access to Data​

  • Users and roles. Access to pages, forms, listings and actions is controlled with roles.
  • APIs. Each API endpoint is Public, Private, or protected with API keys or JWT with OAuth scopes. Send API keys in the Authorization header, not in the URL, so they don't end up in logs.
  • Input sanitization. Secure Input removes scripts and unsafe HTML from user input, to prevent cross-site scripting.
  • SQL. In Run SQL Query, pass values with Bind Tokens, so they're sent as parameters.
  • Database account. Run the application with a SQL user that has only the rights it needs. See Defining the SQL user.

Checklist for a New Installation​

#ItemWhere
1TLS certificate on the website, SSL Enforced onIIS, site settings
2Only TLS 1.2 or later enabledWindows Server (SCHANNEL)
3TDE on the application databaseSQL Server
4Encrypt=True in the database connection string, certificate on SQL Serverweb.config, SQL Server
5Backup encryption, certificate copied to a safe placeSQL Server
6Least-privilege SQL userSQL Server
7Secrets only in connectorsConnectors
8APIs protected with API keys or JWTAPI endpoints
9Access to web.config and the server restricted to administratorsWindows Server

Revised 11/05/2026