heyGRC Docs

Dokumentacja API

Publiczne API heyGRC: endpointy do zarządzania frameworkami i konfiguracją przeglądów, wraz ze strukturami żądań i odpowiedzi.

Adres bazowy: https://api.heygrc.com

Wszystkie żądania uwierzytelniają się za pomocą klucza API dla organizacji, przesyłanego jako token Bearer:

Authorization: Bearer hgrc_...

Klucz należy do jednej organizacji heyGRC (jeden na instalację GitHub App) i posiada zakresy uprawnień (config:read, config:write). Przesyłaj klucz wyłącznie w nagłówku – klucze przekazane w adresie URL są odrzucane (400), aby uniknąć ich wycieku do logów i referrerów. Organizacja, na której działa żądanie, jest zawsze wyprowadzana z klucza, więc klucz może odczytywać lub zapisywać konfigurację wyłącznie swojej organizacji.


GET /v1/config

Zwraca aktualną konfigurację Twojej organizacji. Wymagany zakres: config:read.

200

{
  "profile": { "company": "Acme Inc", "...": "..." },
  "frameworks": ["ISO_27001", "SOC_2", "GDPR"],
  "eu_inference": false
}

PUT /v1/config

Pełne zastąpienie konfiguracji Twojej organizacji. Idempotentne: treść żądania stanowi pełny pożądany stan (wszystko, co pominięto, zostanie usunięte). Wymagany zakres: config:write.

Jeden wyjątek od pełnego zastąpienia: eu_inference jest opcjonalne i trwałe. Pominięcie pozostawia bieżącą wartość organizacji bez zmian; przesłanie wartości logicznej ją ustawia (wartości nielogiczne są odrzucane). Nie polegaj na pomijającym PUT, aby ją zresetować.

Nagłówki: Content-Type: application/json; opcjonalny Idempotency-Key: <string> (logowany w celu bezpiecznego ponawiania żądań).

Treść żądania

PoleTypUwagi
profileobject (wymagane)Dowolny kontekst firmy. Musi być obiektem JSON, ≤ 16 KB, maksymalna głębokość zagnieżdżenia 4, wartości to ciągi znaków / liczby / wartości logiczne / tablice tych typów.
frameworksstring[] (wymagane)Identyfikatory frameworków, z którymi musisz być zgodny. Każdy identyfikator musi znajdować się w katalogu – nieznane identyfikatory są odrzucane, a nie cicho pomijane.
eu_inferencewartość logiczna (opcjonalna)Trwałe: pominięte = bieżąca wartość zachowana; wartość logiczna = ustawiona. Wartości nielogiczne są odrzucane.

200

{ "ok": true, "profile": { "...": "..." }, "frameworks": ["ISO_27001", "SOC_2", "GDPR"] }

Odpowiedź 200 jest zwracana dopiero po zatwierdzeniu zarówno zmiany, jak i jej rekordu audytu, więc udany zapis jest zawsze możliwy do audytu.


Błędy

Stała struktura JSON dla każdego błędu:

{ "error": { "code": "unknown_frameworks", "message": "unknown framework ids: FOO", "unknown": ["FOO"] } }
StatuscodeZnaczenie
400invalid_requestNieprawidłowe żądanie JSON, niepoprawna struktura treści lub klucz przekazany w adresie URL.
401unauthorizedBrakujący, niepoprawnie sformułowany, nieprawidłowy, przeterminowany lub unieważniony klucz.
403forbiddenKlucz nie posiada wymaganego zakresu (config:read / config:write).
422invalid_profileprofile nie jest obiektem, jest zbyt duży lub zbyt głęboko zagnieżdżony.
422unknown_frameworksJeden lub więcej identyfikatorów frameworków nie znajduje się w katalogu (zobacz unknown).
429rate_limitedZbyt wiele żądań; zwolnij tempo.
405method_not_allowedMetoda HTTP nieobsługiwana w tym punkcie końcowym.
500internalNieoczekiwany błąd serwera; można bezpiecznie ponowić z backoffem.

Limity szybkości

Limity żądań na klucz i adres IP chronią usługę. Pozostań poniżej ~1 żądania/sekundę, a nigdy nie zobaczysz 429. Konfiguracja to płaszczyzna kontrolna – ustawiasz ją okazjonalnie, a nie w gorącej pętli.


GET /v1/frameworks

Pełny, czytelny maszynowo katalog (bez uwierzytelniania – skieruj tutaj swojego agenta, aby odkryć prawidłowe identyfikatory):

{ "frameworks": [ { "id": "ISO_27001", "name": "ISO 27001:2022", "region": "International" },  ] }

Katalog frameworków

Katalog frameworków heyGRC jest zwracany przez GET /v1/frameworks (liczba rośnie z czasem; nie koduj na stałe). Przekazuj kanoniczny identyfikator w polu frameworks. Najczęściej używane identyfikatory:

ISO_27001, ISO_42001, ISO_27701, ISO_22301, ISO_9001, SOC_2, GDPR, UK_GDPR, HIPAA, CCPA, EU_AI_ACT, NIST_CSF, NIST_800_53, NIST_800_171, NIST_AI_RMF, DORA, TISAX, CMMC, FEDRAMP, CYFUN, AU_ESSENTIAL_EIGHT, oraz NIS 2 jako NIS_2 wraz z wariantami dla poszczególnych krajów (NIS_2_DE, NIS_2_FR, NIS_2_IT, …).

Żądanie PUT z identyfikatorem spoza katalogu jest odrzucane z kodem 422 unknown_frameworks, a błędne identyfikatory są zwracane, dzięki czemu Twój agent może samodzielnie skorygować błąd.

On this page