Flow
ServicesLocations

Locations

Read physical locations and the timezone configured on a property.

Domain
Services
Kind
Go HTTP service
Lifecycle
Active
flowctl project
None
Stacks
Runs on its own

Locations owns the physical location tree in Postgres. The existing read API returns individual locations, filtered lists, and batches of IDs. It has no write API.

Property timezone

The optional timezone field on a property stores an IANA timezone name, such as America/New_York or Asia/Riyadh. A timezone name includes the rules for daylight saving changes. It is not a fixed UTC offset.

The field is returned by the existing location endpoints and the generated Go client. It is omitted when unset. Non-property locations cannot store it; consumers read the property referenced by their lease rather than copying its timezone onto each unit or lease.

Existing properties are left unset by the migration. No timezone is inferred from a property name, region, server setting, or accounting calendar. Locations has no API for entering or correcting these values.

The database rejects non-property values, blank names, surrounding spaces, names longer than 100 characters, and Local. It does not check the IANA catalog. The generated client's LocationsLocationRecord.PropertyTimezone() resolves a name using Go's timezone database and returns an error for an unset or unrecognized value or a non-property record. Consumers must handle that error instead of assuming UTC or the host timezone.

services/locations/internal/handlers/location.go services/locations/client/timezone.go

Read endpoints

  • GET /v1/locations/{id} reads a location, including a retired location.
  • GET /v1/locations lists active locations, with parent, subtree, and kind filters.
  • GET /v1/locations?ids=... resolves a batch, including retired locations.
services/locations/openapi.yaml

On this page