Security
This page describes what the service does today. Where something is planned and not yet in place, we say so. We do not hold any security certification, such as SOC 2 or ISO 27001.
Connection security
- In production the service redirects all HTTP traffic to HTTPS.
- HSTS is on for one year, including subdomains, with preload enabled.
- Session and CSRF cookies are marked Secure. Session cookies are HttpOnly and SameSite=Lax, and sessions last 14 days.
- A Content Security Policy limits where scripts, styles and other content can load from, and browsers are told not to sniff content types.
Passwords and sign-in
- Passwords are hashed with bcrypt (SHA-256 pre-hash). We never store them in plain text.
- Two-factor authentication is available to every user. It uses an authenticator app (TOTP) and recovery codes. It is optional. Once you turn it on, every sign-in asks for a code, including Google sign-in and the admin sign-in.
- Sign-in, sign-up, password reset and two-factor code requests are rate limited to 10 attempts per minute per IP address.
Encryption of connected-account tokens
The access and refresh tokens for your connected social accounts, the app credentials you add, and AI provider keys you supply are encrypted at rest in the database with AES-256-GCM. Each value gets its own random nonce. The key is derived from server secrets that are kept outside the database. The database is also not exposed to the public internet by design, and the data is encrypted in transit as described above.
API tokens
- API keys are tied to one workspace and to a list of connected accounts you choose.
- Each key carries only the permissions you give it. It can never do more than the person who issued it can do, so removing or demoting that person shrinks the key.
- We show a key once when you create it. We store only a keyed hash, not the key.
- Keys have rate limits per minute, hour and day, and organizations have a daily allowance on top.
MCP and OAuth
AI assistants connect to PostDelegate through the Model Context Protocol using OAuth 2.1 with the authorization code flow. PKCE is required and only the S256 method is accepted. Access tokens last one hour. Refresh tokens last 30 days and rotate each time they are used. A consent screen is always shown, and you choose which tool capabilities the assistant gets.
Controls for AI agents
- Each workspace has an autonomy dial for each kind of action: draft content, publish posts, reply to comments and messages, and recycle posts. Each can be Off, Draft only, Auto with guardrails or Full auto. The default is Draft only.
- Guardrails include blocked phrases, review of links, mentions, prices and sensitive topics, daily limits, quiet hours and an optional AI risk check.
- Automatic publishing and replies wait in an undo window (five minutes by default) where a person can stop them.
- A pause switch stops all agent actions at once.
- Every action by a person, agent or automation is recorded in an activity trail, with the decision (executed, held for review or blocked) and the reason.
Outbound requests
When the service fetches a URL for you, such as a webhook endpoint, a feed or a self-hosted instance address, it only allows http and https and rejects addresses that resolve to private, loopback, link-local (including cloud metadata), multicast or reserved ranges. This guards against server-side request forgery (SSRF). Webhook and AI provider requests pin the checked address.
Rate limits and abuse protection
Sign-in flows, public endpoints and the API are rate limited as described above. Cloudflare sits in front of the service for DNS, CDN and DDoS protection.
Backups
Planned: nightly database backups, encrypted before they leave the server and stored in a separate private Cloudflare R2 bucket, with a tested restore procedure. This is not yet running. We will update this page when it is.
Hosting
The service runs on Hetzner servers. Hosting region: [Hosting region to be confirmed]. See Subprocessors for every provider that handles data.
Your data
You can delete your account and data at any time. See Data deletion. For the terms that apply to customer data, see our Data Processing Addendum.
Report a vulnerability
If you find a security problem, email [email protected]. Please give us enough detail to reproduce it, and give us reasonable time to fix it before you share it. Please do not access other people's data, degrade the service or use social engineering. We will acknowledge your report, keep you updated and not take legal action against good-faith research that follows these rules. Our contact details are also at /.well-known/security.txt.