Flares Cloud is not currently available to new customers. This documentation is kept for the projects already running on it, and stays accurate for them. What happened.

Flares Developer Docs

Limits

Time, memory, bundle, request and response ceilings — and why.

The ceilings

LimitDefaultEnforced by
Execution time10 sPHP's own limit and a wall-clock kill in the parent — a sleeping function burns no CPU, so the wall clock is the one that always fires.
Memory128 MBThe runtime's memory limit. Exceeding it ends the invocation with a stated reason.
Request body1 MBThe gateway, before dispatch — an oversized body is 413 and is not billed.
Response / output5 MBThe parent stops reading and ends the invocation.
Bundle10 MB, 500 filesDeployment validation, before anything is written.
Invocation rate600 / minute per projectThe gateway. Refusals are 429 and are not billed.

Higher ceilings are a plan matter; the platform maximums are 60 s and 512 MB.

The isolation guarantees

Customer code is untrusted code. Each invocation runs in a dedicated process that cannot:

  • read the host filesystem — /etc/passwd, C:\Windows, the platform's .env or its source;
  • read another project's bundle, even given its exact path — the directory does not even list;
  • spawn processes — exec, shell_exec, system, passthru, proc_open, popen, pcntl_fork are all disabled;
  • reach the private network — see Outbound network below;
  • discover platform secrets from its environment — they are not in the process;
  • run as a privileged user, or outlive its limits.
Each of these is a test in the platform's suite that deploys genuinely hostile PHP — an infinite loop, a memory bomb, a process-spawn probe, a file thief, an environment thief, a network probe, an output bomb — and asserts what the attacker actually got. They run on every build.

Outbound network

Where your Flares installation has it enabled, a function can call the internet: a payment provider, an AI API, a partner's webhook, your own services. curl and the HTTP stream wrappers are available; HTTPS works.

What it can never reach, whatever your code asks for:

DestinationWhy it is refused
127.0.0.0/8, ::1The host's own databases and services.
10/8, 172.16/12, 192.168/16, fc00::/7The private network between Flares machines.
169.254.0.0/16Link-local, including the cloud metadata service that hands out the host's own credentials.
100.64.0.0/10, 0.0.0.0/8Carrier-grade NAT and this-network, reachable in some estates.

That refusal is not made by PHP. Your function runs as its own unprivileged system user, and the host's firewall refuses that user those destinations — so it holds no matter what your code does, including code written specifically to get around it.

An installation that has not been set up for this isolation keeps functions offline entirely, rather than granting network it cannot contain. If curl is unavailable to your functions, that is why — ask your Flares administrator.

Outbound calls are not billed. They cost you the time they take, which counts against your function's timeout, and nothing else.

Designing within the limits

  • Do long work in pieces: accept the request, record it in Basket, return quickly.
  • Nothing persists on disk between invocations — write state to Basket, not to a file.
  • Install dependencies at deploy time via Composer, never at request time.