Security overview

Answered before you send the form.

Twenty questions appear in substantially every security questionnaire. Here they are, answered, including the four we have to answer badly.

01

One named responder

Kurt Ferreira, Information Officer for Kold Software (Pty) Ltd, registered with the Information Regulator of South Africa. Not a queue, and not a form.

02

Two working days, then ten

Acknowledged within two working days. Answered in full within ten. If your form asks something this page does not cover, you get the answer and the evidence behind it, or a date.

03

Never a guess

What we have not verified is told to you as not verified. Four answers on this page are exactly that, and they stay that way until the thing behind them is done.

The questions

Twenty answers, four of them uncomfortable

Marked answers are the ones where the honest reply is no, not yet, or not verified. They are here on purpose: a questionnaire answered with a guess is worse than one answered late.

20 answers
Where is it hosted?
In South Africa, on Vultr, with backups held in a second South African region. Uploaded files are stored separately, with Amazon Web Services in Cape Town. We will name both Vultr regions in writing when you ask. If your own rules require hosting elsewhere, raise it before you sign and we will tell you plainly whether we can.
Is data encrypted in transit?
Yes, and the database connection is the strict case: the application refuses any connection that is not on loopback unless the certificate verifies. Our own CI tunnels through loopback rather than weaken that rule.
How are customers isolated from one another?
By row-level security policies in Postgres, not by a WHERE clause in application code that somebody could forget. Automated tests attempt cross-customer reads on every build and fail it if one succeeds.
How do people authenticate? Is single sign-on supported?
Through your own identity provider over OpenID Connect with PKCE, with a documented Microsoft Entra setup, or by a one-time emailed link. A session is issued for one workspace and refused on any other, checked on every request rather than only at sign-in.
What is your password policy?
There are no passwords. Nothing is hashed, rotated, leaked or reset, because nothing is stored.
How is access controlled inside a customer’s workspace?
Your organisation defines its own roles and who holds them, and approvals follow those roles. Your administrators manage this themselves, from inside your workspace.
What is logged, and can the log be altered?
Every action is a row in an append-only, hash-chained trail, one chain per customer. Updates and deletions are refused by the database. A proof suite breaks a chain deliberately and demonstrates the break is detected. The end of the chain is emailed weekly to your own managers, and you can download the whole trail and verify it on a page that runs on your machine.
Do your staff access customer data?
Only for support, and when they do it is written to that customer’s own trail, not to ours.
How often do you back up, and how long do you keep backups?
Nightly, off the database instance and off the cluster. Fourteen are kept, then rotated out.
Do you test restores?
Not on a schedule, and we will not pretend otherwise. The procedure exists and the runbook describes it, but there is no record of it having been run and verified. It is an ordinary gap at our size and a cheap one to close.
Have you had a penetration test?
No. Not by anyone, ever. At our size no buyer in our price range has required one, and when that changes we will commission one rather than claim one.
What is your secure development practice?
Every claim we publish is covered by a suite that runs on each build and fails it. Isolation, authentication, the audit chain, billing lapse behaviour and each service’s own process are all proven that way rather than asserted.
Who are your sub-processors?
Six, listed in full below, with what each one sees. The product itself carries no analytics and no error reporting of any kind.
Where does our data live, and what leaves the country?
Business records stay in South Africa. Two things leave: email notifications, which carry a recipient’s name, address and the text of the notification, and the billing details of a paying customer. Nothing else.
Can we export our data?
Yes. Records stay readable and exportable, and the whole audit trail downloads for independent verification. If a payment is late, paid services go read-only while records stay readable. Deletion only follows cancelling the whole workspace.
Can we have our data deleted?
Yes. A workspace is deleted 30 days after it is cancelled: its people, records, uploaded files with every stored version, and its audit trail. Every administrator is told the date when it is cancelled and reminded seven days and one day before, and subscribing again stops it. To have it deleted sooner, ask us. Invoices and billing records are kept for five years, as tax law requires, holding nothing of the workspace’s contents. Deleted data leaves our backups as they expire.
How would we be told about a breach?
Affected customers are told within 72 hours of a compromise being confirmed. The Information Regulator is told as soon as reasonably possible, as POPIA section 22 requires. Confirmed, not discovered: working out whether an alert is a real compromise takes hours, and 72 is a commitment we can keep because the clock starts when we know.
What is your PCI scope?
None. Paddle is merchant of record: card details are entered into Paddle’s own checkout and never reach our systems, so we are out of PCI scope entirely.
Do you hold ISO 27001 or SOC 2?
Neither, and neither is in progress. At our size none is expected, and we would rather say so than let a silence read as evasion.
What do you not publish?
Encryption at rest for the database, and our patching cadence. Both are real, neither has been verified to the standard we hold the rest of this page to, so neither is claimed here. Uploaded files are the exception, and how they are stored is set out below. Ask and you get the answer in writing, with the evidence.
Uploaded files

Where uploaded files are stored

Artwork, media plans and the documents attached to requests, quotes and tickets are kept apart from the database, in South Africa.

Where

Amazon S3 in the af-south-1 region, Cape Town. Each environment has its own bucket.

At rest

Encrypted with Amazon S3 managed keys (SSE-S3, AES-256). Public access is blocked on the bucket and versioning is on.

Whose it is

Every file is a database row recording its SHA-256, tied to one workspace by row-level security and stored under that workspace’s own path. Another customer’s file is not found, exactly as a record is not.

How it is opened

Never by a public address. Once the application has checked access, it hands out a signed download link that works for 60 seconds.

What is accepted

A file’s kind is read from its bytes, not its name. SVG and HTML are refused, because both can carry script. A Word, Excel or PowerPoint file carrying macros is never accepted as an Office document: it counts as a ZIP archive, which only the artwork and media services take.

Evidence

A stored file is never changed: a new upload is a new file. Files kept as evidence, such as a spend request’s supporting documents or a quote’s drawings, cannot be taken off the record, and every decision records the files it was made on.

People outside your workspace

A client, supplier or media owner reaches only the one file their signed link was issued for, and nothing else in your workspace.

Sub-processors

Six, and what each one sees

The product itself carries no analytics and no error reporting. Not Sentry, not PostHog, not Plausible, nothing. The only outbound connections it makes are to file storage, email and payment below, and to the identity provider you choose.

6 processors
WhoWhat they seeWhereWhy
VultrThe application, the database and the backupsSouth AfricaHosting
Amazon Web ServicesFiles uploaded to records, such as artwork, media plans and supporting documents, encrypted at restSouth Africa (Cape Town)File storage
ResendThe name and email address of a person being notified, and the text of that notificationUnited StatesSending email
PaddleThe billing contact and company details of a paying customer, and what they boughtMerchant of recordTaking payment
CloudflareDNS records only. No customer data and no traffic: nothing is proxiedNot applicableDNS, for the certificate challenge
Google AnalyticsVisitors to this website only, never product data, and only after you acceptUnited StatesMeasuring this marketing site

What leaves South Africa

Email notifications, which carry a recipient’s name, address and the text of the notification. A notification can name a record, so this is the one route by which business content leaves the country, and we would rather say it than bury it. Billing details of a paying customer go to Paddle. Nothing else.

What does not

Every customer business record: requests, approvals, budgets, assets, leave, quotes, projects, uploaded files and the audit trail. Stored, processed and backed up in South Africa, and mirrored nowhere else. If you need that to be somewhere else, say so before you sign.

Where you are

What applies to you

POPIA applies

Your organisation is the responsible party for the records inside Koldheim. Kold Software (Pty) Ltd is the operator and processes them on your instructions. Our Information Officer, Kurt Ferreira, is registered with the Information Regulator.

  • Your records are stored, processed and backed up in South Africa.
  • Email notifications go through a provider in the United States, which is the one route by which business content leaves the country.
  • Breaches are notified to the Information Regulator as POPIA section 22 requires, and to you within 72 hours of confirmation.

Hosting is South Africa wherever you are. Somewhere else is a conversation before a signature, not a switch. An organisation outside these three sees the South African answer, which is the one that describes where your records actually sit.

Retention

How long we keep things

A workspace is deleted 30 days after it is cancelled. Invoices are the one thing kept after that, because the law requires it.

Your business records and files

Kept while you are a customer. Deleted 30 days after the workspace is cancelled, files and every stored version included. A single cancelled service is read-only for 90 days, then archived.

The audit trail

Never pruned while you are a customer, which is what a tamper-evident record requires. Deleted with the workspace, 30 days after it is cancelled; our own trail keeps a signed record that the deletion happened.

Invoices and billing records

Kept for five years, as tax law requires, apart from the workspace and holding nothing of its contents.

Backups

Fourteen nightly copies, then rotated out. Deleted data leaves them as they expire.

Sessions, login tokens and delivery logs

We do not publish a period for these, because no sweep deletes them on one yet.

Keep exploring

Where to next

Send us the form anyway. We will answer it.

Book a demo