> ## Documentation Index
> Fetch the complete documentation index at: https://docs.floral.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Driftssikkerhed og nye forsøg

> Brug Florals grænser, idempotens, samtidighed, request-id og logning sikkert.

API-referencen angiver driftsprofilen for hver handling. Brug den til at afgøre, om et kald kan prøves igen, og hvilke headers det kræver.

## Grænser for kald

Grænser gælder pr. bruger og arbejdsområde i faste, minutlange tidsvinduer.

| Handlingsprofil                             | Kald pr. minut |
| ------------------------------------------- | -------------: |
| Læsning                                     |            120 |
| Oprettelse                                  |             60 |
| Delvis opdatering                           |             60 |
| Arkivering, gendannelse og andre handlinger |             60 |
| Generering                                  |             10 |

Svar, der tæller mod en grænse, indeholder `X-RateLimit-Limit` og `X-RateLimit-Remaining`. Et begrænset kald giver `429 RATE_LIMITED` og en `Retry-After`-header i sekunder. Vent den angivne tid, og prøv derefter igen med eksponentielt backoff og jitter.

Grænserne beskytter tjenestens drift. De er ikke faste kundekvoter og kan blive mere specifikke uden at ændre handlingens offentlige kontrakt.

## Idempotente skrivekald

Oprettelse, arkivering, gendannelse, generering og godkendelse kræver headeren `Idempotency-Key`. Vælg en uigennemsigtig værdi, der er unik for én logisk handling, for eksempel et UUID.

Floral gemmer et afsluttet resultat i 24 timer. Et identisk nyt forsøg fra samme nøgle, arbejdsområde og handling gentager oprindelig status, svarindhold, `ETag`, `Location` og `X-Request-ID`. Hvis nøglen genbruges med et andet kanonisk mål, et andet fortolket input eller en anden `If-Match`-værdi inden for samme handling, får du `409 IDEMPOTENCY_CONFLICT`. Nøgler er afgrænset pr. handling, men du bør stadig bruge en ny nøgle til hvert nyt logisk kald.

```bash theme={null}
export IDEMPOTENCY_KEY="01J5C2R6X4T7A9N3K8M1Q0V2WP"
```

Hvis forbindelsen lukker, før du modtager svaret, sender du det identiske kald igen med samme nøgle. Opret kun en ny nøgle til en ny logisk handling.

## Optimistisk samtidighed

Detaljesvar for ændringsbare ressourcer indeholder en stærk `ETag`. Delvise opdateringer og tilstandsændringer kræver den nyeste værdi i `If-Match`.

```http theme={null}
ETag: "v1.ZXhhbXBsZS12ZXJzaW9u"
```

```http theme={null}
If-Match: "v1.ZXhhbXBsZS12ZXJzaW9u"
```

Behandl værdien som uigennemsigtig, og behold anførselstegnene. Gem den nye `ETag` efter et gennemført skrivekald. Ved `412 VERSION_CONFLICT` skal du genindlæse ressourcen, afstemme den ønskede ændring med den aktuelle tilstand og prøve igen med den nye værdi. Prøv ikke automatisk en `412` igen uden afstemning.

## Request-id og logning

Send en unik `X-Request-ID` på højst 128 tegn pr. logisk kald. Floral returnerer det gældende id i svaret og i alle fejlformater. Idempotente gentagelser returnerer det oprindelige id, så forsøgene kan forbindes.

Gem følgende i integrationens logs uden tokens eller følsomme body-felter:

* `operationId`, `workspaceSlug` og ressource-id;
* brugt idempotensnøgle eller ressourceversion;
* HTTP-status, fejlkode og `X-Request-ID`;
* tidspunkt og resultat for hvert nyt forsøg.

Floral registrerer den godkendte aktør ved skrivekald. Brug en nøgle, der tilhører den person, som er ansvarlig for ændringen, og behold request-id'et ved undersøgelse af en hændelse.

## Beslutningstabel for nye forsøg

| Resultat                                    | Handling                                                    |
| ------------------------------------------- | ----------------------------------------------------------- |
| Netværksbrud under et idempotent skrivekald | Send det identiske kald med samme `Idempotency-Key`.        |
| `429 RATE_LIMITED`                          | Vent til `Retry-After`, og prøv igen med backoff og jitter. |
| Midlertidig `5xx` ved læsning               | Prøv igen med begrænset eksponentielt backoff og jitter.    |
| Midlertidig `5xx` ved idempotent skrivning  | Send det identiske kald med samme nøgle.                    |
| `412 VERSION_CONFLICT`                      | Genindlæs, afstem, og send den aktuelle `ETag`.             |
| Andet `4xx`-svar                            | Ret kaldet eller adgangen, før du prøver igen.              |
