Bazy danych

Bazy danych odpytywane przez formularze, każda z poświadczeniem

  1. W tej sekcji
  2. Jak to działa
  3. Aktualizacja do 7.5.0
  4. Poświadczenia w użyciu
  5. Kto zarządza bazami danych
  6. Config seed
  7. REST API

Dla administratorów: nazwij bazy danych, które odpytują twoje formularze, wybierz poświadczenie, którym łączy się każda z nich, i przetestuj je.


W tej sekcji

Strona Czego dotyczy
Strona baz danych Lista baz danych, jej kolumny i okno, które dodaje nową
Strona bazy danych Karty bazy danych, formularze, które ją odpytują, Testuj połączenie i Usuń
Bazy danych w formularzach Jak dbConfig pola wskazuje bazę danych, i formularze napisane przed 7.5.0

Jak to działa

Od wersji 7.5.0 baza danych jest osobnym połączeniem, dodawanym w Połączenia > Bazy danych, między Magazyny sekretów a Runnery. Ma trzy elementy:

Pole Co to jest
Nazwa Nazwa, którą podaje dbConfig pola, aby ją odpytać, np. cmdb
Opis Do czego służy
Poświadczenie Poświadczenie z Połączenia > Poświadczenia typu Baza danych, którym się łączy

Poświadczenie przechowuje wszystko o połączeniu, jak dotąd: typ bazy danych (MySQL, MSSQL, PostgreSQL, Oracle lub MongoDB), host i port, nazwę bazy danych, TLS oraz użytkownika i hasło, zaszyfrowane lub odczytywane z magazynu sekretów. Baza danych nie ma własnego adresu ani sekretu, więc baza danych i runner wybierają swoje poświadczenie w ten sam sposób.

Pole odpytuje bazę danych, wskazując ją w dbConfig:

- name: city
  type: enum
  dbConfig: cmdb            # a database of Connections > Databases
  query: select name from cmdb.city

Nazwa, która nie jest bazą danych, jest wyszukiwana jako poświadczenie typu baza danych, jak przed 7.5.0, więc starsze formularze działają dalej bez zmian (zobacz Bazy danych w formularzach).


Aktualizacja do 7.5.0

Aktualizacja jednorazowo wypełnia Połączenia > Bazy danych, więc twoje formularze działają dalej bez żadnej zmiany.

Tworzy jedną bazę danych dla każdego poświadczenia typu baza danych, z nazwą i opisem poświadczenia, łączącą się tym poświadczeniem. Formularz, którego dbConfig wskazuje poświadczenie, znajduje teraz bazę danych o tej samej nazwie, która łączy się tym samym poświadczeniem: wynik jest taki sam. Poświadczenia zachowują wszystkie swoje pola.

Aktualizacja działa tylko raz: baza danych usunięta później nie jest tworzona ponownie, a poświadczenie bazy danych dodane później nie dostaje bazy danych, dopóki jej nie dodasz.


Poświadczenia w użyciu

Poświadczenie, którym łączy się baza danych, jest w użyciu, tak jak to, którym loguje się runner.

Nie można go usunąć ani przemianować, dopóki wskazuje je baza danych, a karta Używane przez na jego stronie wymienia bazy danych (zobacz Poświadczenia w użyciu). Usunięcie bazy danych pozostawia jej poświadczenie bez zmian.


Kto zarządza bazami danych

Bazy danych podlegają tym samym opcjom roli co poświadczenia, które wskazują.

Lista, strona bazy danych i jej API wymagają opcji roli showSettings lub showConnectionsSettings, tak jak poświadczenia. Tylko admin może sprawić, że baza danych łączy się poświadczeniem, które może wskazać tylko admin, np. takim, które odczytuje hasło z magazynu sekretów (zobacz Kto może zmienić poświadczenie): formularze, które ją odpytują, łączyłyby się tym poświadczeniem, a Testuj połączenie wysłałoby jego sekret na jego serwer. Inny użytkownik może ponownie zapisać bazę danych z poświadczeniem, które już wskazuje.

Baza danych zadeklarowana w config seed jest na swojej stronie tylko do odczytu: zmień ją zamiast tego w pliku seed.


Config seed

Seed deklaruje swoje bazy danych w sekcji databases:, po poświadczeniach, które wskazują.

Każdy element ma name, credential typu baza danych i opcjonalnie description. Poświadczenie może pochodzić z sekcji credentials tego samego seeda albo być utworzone w aplikacji:

credentials:
  items:
    - name: cmdb-login
      credential_type: database
      db_type: mysql
      host: cmdb.example.com
      port: 3306
      user: svc_forms
      password: ${SEED_CMDB_PW}

databases:
  items:
    - name: cmdb                 # the name a field's dbConfig gives
      description: The CMDB
      credential: cmdb-login     # a credential of type database

Zobacz pełny przykład i Obiekty zarządzane, aby dowiedzieć się, jak seed zarządza tym, co deklaruje.


REST API

Skrypty zarządzają bazami danych przez REST API, pod /api/v2/database, z tymi samymi opcjami roli co strona.

Wywołanie Co robi
GET /api/v2/database Wyświetla bazy danych, każdą z typem bazy danych, bazą danych, hostem i portem jej poświadczenia oraz liczbą formularzy, które ją odpytują (used_by_count)
GET /api/v2/database?name=<name> Pobiera bazę danych o tej nazwie
GET /api/v2/database/<id> Pobiera jedną bazę danych
POST /api/v2/database Dodaje bazę danych: jej name, credential i opcjonalnie description
PUT /api/v2/database/<id> Zmienia bazę danych
DELETE /api/v2/database/<id> Usuwa bazę danych; jej poświadczenie zostaje
POST /api/v2/database/<id>/check Testuje jej połączenie, jej poświadczeniem
curl -X POST https://forms.example.com/api/v2/database \
  -H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
  -d '{ "name": "cmdb", "description": "The CMDB", "credential": "cmdb-login" }'

credential, które nie istnieje lub nie jest typu baza danych, jest odrzucane z kodem 400. Każda zmiana jest zapisywana w dzienniku audytu.