Skip to content

Sites FAQ

The console has no action that adds a site. Your organization’s first site is created when EdgeKit sets up your organization, from the name, domain and origins given at setup.

Not from the console. To stop a site serving requests, set its Status to disabled and deploy. Its settings, API keys and data are kept, and setting it back to active restores it.

Open the site from Delivery › Delivery › Sites. The id is the last part of the page address, for example /delivery/sites/site_daily_example. It is site_ followed by the site’s name in lower case, with every run of other characters replaced by _ and any _ at either end dropped.

Does renaming a site or changing its domain change its id?

Section titled “Does renaming a site or changing its domain change its id?”

No. The id is made from the name once, when the site is created, and never changes. Rename the site or move it to a new domain and everything written against the id keeps working.

No. It selects a site; it does not authenticate anyone. Public routes such as GET /v1/id/config answer anyone who sends a valid id. The id can only select one of your own organization’s sites, because every organization’s sites are in that organization’s own database. Routes that act on data check a credential as well: an API key, an allowed origin or an EdgeKit session.

A site has one domain, and no two sites share a domain. A site can still accept browser requests from several origins, such as https://daily.example and https://www.daily.example: list each in Allowed, up to 50.

I saved a change. Why do requests still behave the old way?

Section titled “I saved a change. Why do requests still behave the old way?”

Requests read your newest deployment, not the draft you edit. Deploy from Delivery › Deployments › Versions (Stage and deploy a change), and requests use the new values from then on. The public GET /v1/id/config answer can also be cached for up to five minutes.

Why does every browser request to my site get 403?

Section titled “Why does every browser request to my site get 403?”

The browser’s origin is not in the site’s Allowed list. Check that:

  • the list is not empty. An empty list refuses every browser request that needs an allowed origin, and a deploy does not stop you shipping one;
  • each entry is exactly scheme, host and port, with no path and no trailing slash;
  • each subdomain you serve from has its own entry. An entry with * never matches.

Then deploy.

Do I need to add my site’s own domain to Allowed origins?

Section titled “Do I need to add my site’s own domain to Allowed origins?”

Yes, if pages on that domain call EdgeKit from the browser. The domain is not added to the list for you. Add it as an origin, for example https://daily.example for the domain daily.example.

After the next deploy, the client API and decide answer every request for the site with 404 not_found, Unknown site., the same answer as for a site that does not exist. Its API keys stay valid but every request that selects the site gets that 404. The collector still accepts the site’s events.

No. Every key is pinned to the one site it was issued for. Used on a request that selects another site, it is refused with 403 forbidden, This key is not pinned to the selected site.. Issue one key per site.

No. EdgeKit stores only a hash, so the key is shown once, when it is issued. Issue a new key and revoke the lost one.

How quickly does revoking a key take effect?

Section titled “How quickly does revoking a key take effect?”

At the key’s next request, which gets 401 unauthorized. Keys are checked on every request and are not part of a deployment, so no deploy is needed. A revoked key cannot be turned back on.

Why are some events filed under _unresolved?

Section titled “Why are some events filed under _unresolved?”

Those events arrived without a site id. Every event is stored with a site_id: the id the tracker sent, or _unresolved when it sent none. The collector never refuses an event because of its site, so an event with a mistyped id is stored under that id. Set the tracker’s site id to the site’s id.

Your sites share one database and one sign-in instance. A person is one user across all of them, and their EdgeKit session is not tied to a site: the x-edgekit-site-id header, not the session, says which site a request is for. Between organizations it is different: each organization has its own database and its own sign-in instance, never shared with another organization.

Is the meter time zone or the transactional mail setting per site?

Section titled “Is the meter time zone or the transactional mail setting per site?”

No. Both are shown on each site’s screen under Delivery › Delivery › Sites, and both apply to your whole organization. The meter time zone reaches requests after the next deploy; the transactional mail setting takes effect on the next request.

Can I edit the Configuration and Raw overrides sections?

Section titled “Can I edit the Configuration and Raw overrides sections?”

No. Both are read-only. Configuration shows your organization’s settings as saved, with the site’s overrides applied, and Raw overrides shows the site’s overrides exactly as stored.