Udostępnij za pomocą


add polecenie

Dodaj nową definicję jednostki do istniejącego pliku konfiguracji konstruktora interfejsu API danych. Musisz mieć już utworzoną konfigurację za pomocą dab initpolecenia . Użyj polecenia dab update , aby zmodyfikować jednostki po utworzeniu.

Wskazówka

Użyj dab add polecenia , aby utworzyć nowe jednostki i dab update rozwijać je. Ponowne mapowanie nazwy pola (--map) jest dostępne tylko w pliku update, a nie w add.

Składnia

dab add <entity-name> [options]

Szybki rzut oka

Option Podsumowanie
<entity-name> Wymagany argument pozycyjny. Nazwa jednostki logicznej.
-c, --config Ścieżka pliku konfiguracji. Wartość domyślna dab-config.json.
--cache.enabled Włączanie/wyłączanie buforowania dla jednostki.
--cache.ttl Czas wygaśnięcia pamięci podręcznej w sekundach.
--description Dowolny opis jednostki.
--fields.exclude Wykluczone pola rozdzielone przecinkami.
--fields.include Pola dozwolone rozdzielone przecinkami (* = wszystkie).
--graphql Ekspozycja graphQL: false, true, singularlub singular:plural.
--graphql.operation Tylko procedury składowane. query lub mutation (mutacja domyślna).
--permissions To jest wymagane. role:actions Co najmniej jedna para. Powtarzalne.
--policy-database Filtr w stylu OData zastosowany w zapytaniu bazy danych.
--policy-request Zażądaj oceny zasad przed wywołaniem bazy danych.
--rest Ekspozycja REST: false, truelub trasa niestandardowa.
--rest.methods Tylko procedury składowane. Dozwolone czasowniki HTTP. Domyślny post.
-s, --source To jest wymagane. Nazwa obiektu bazy danych (tabela, widok lub procedura składowana).
--source.key-fields Wymagane dla widoków lub gdy klucz PK nie został wywnioskowany. Niedozwolone dla procs.
--source.params Tylko procedury składowane. Domyślne wartości parametrów.
--source.type Typ źródła: table, , stored-procedureview(tabela domyślna).

<entity-name>

Logiczna nazwa jednostki w konfiguracji. Uwzględniana wielkość liter.

Example

dab add Book --source dbo.Books --permissions "anonymous:read"

Wynikowa konfiguracja

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [ "read" ]
        }
      ]
    }
  }
}

-c, --config

Ścieżka pliku konfiguracji. Wartość domyślna to dab-config.json.

Example

dab add Book --config ./dab-config.mssql.json --source dbo.Books --permissions "anonymous:read"

--cache.enabled

Włącz lub wyłącz buforowanie.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --cache.enabled true

Wynikowa konfiguracja

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "cache": {
        "enabled": true
      }
    }
  }
}

--cache.ttl

Czas wygaśnięcia pamięci podręcznej w sekundach.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --cache.ttl 300

Wynikowa konfiguracja

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "cache": {
        "ttl-seconds": 300
      }
    }
  }
}

--description

Dowolny tekst opisu jednostki.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --description "Entity for managing book inventory"

Wynikowa konfiguracja

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "description": "Entity for managing book inventory"
    }
  }
}

--fields.exclude

Rozdzielona przecinkami lista pól do wykluczenia.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --fields.exclude "internal_flag,secret_note"

Wynikowa konfiguracja

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "graphql": {
        "fields": {
          "exclude": [ "internal_flag", "secret_note" ]
        }
      }
    }
  }
}

--fields.include

Rozdzielona przecinkami lista pól do uwidocznienia.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --fields.include "id,title,price"

Wynikowa konfiguracja

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "graphql": {
        "fields": {
          "include": [ "id", "title", "price" ]
        }
      }
    }
  }
}

--graphql

Kontrolowanie ekspozycji GraphQL.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --graphql book:books

Wynikowa konfiguracja

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "graphql": {
        "singular": "book",
        "plural": "books"
      }
    }
  }
}

--graphql.operation

Tylko procedury składowane. Typ operacji GraphQL. Wartość domyślna to mutation.

Example

dab add BookProc --source dbo.MyProc --source.type stored-procedure --permissions "admin:execute" --graphql.operation query

Wynikowa konfiguracja

{
  "entities": {
    "BookProc": {
      "source": { "type": "stored-procedure", "object": "dbo.MyProc" },
      "permissions": [
        { "role": "admin", "actions": [ "execute" ] }
      ],
      "graphql": {
        "operation": "query"
      }
    }
  }
}

--permissions

Definiuje pary ról→akcje. Użyj powtarzających się flag dla wielu ról.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --permissions "authenticated:create,read,update,delete"

Wynikowa konfiguracja

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] },
        { "role": "authenticated", "actions": [ "create", "read", "update", "delete" ] }
      ]
    }
  }
}

--policy-database

Zasady na poziomie bazy danych.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --policy-database "region eq 'US'"

Wynikowa konfiguracja

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "policies": {
        "database": "region eq 'US'"
      }
    }
  }
}

--policy-request

Zasady na poziomie żądania.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --policy-request "@claims.role == 'admin'"

Wynikowa konfiguracja

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "policies": {
        "request": "@claims.role == 'admin'"
      }
    }
  }
}

--rest

Kontrolowanie ekspozycji REST.

Example

dab add Book --source dbo.Books --permissions "anonymous:read" --rest BooksApi

Wynikowa konfiguracja

{
  "entities": {
    "Book": {
      "source": { "type": "table", "object": "dbo.Books" },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ],
      "rest": {
        "path": "BooksApi"
      }
    }
  }
}

--rest.methods

Tylko procedury składowane. Czasowniki HTTP dozwolone do wykonania. Domyślnie jest to POST. Ignorowane dla tabel/widoków.

Example

dab add BookProc --source dbo.MyProc --source.type stored-procedure --permissions "admin:execute" --rest true --rest.methods GET,POST

Wynikowa konfiguracja

{
  "entities": {
    "BookProc": {
      "source": { "type": "stored-procedure", "object": "dbo.MyProc" },
      "permissions": [
        { "role": "admin", "actions": [ "execute" ] }
      ],
      "rest": {
        "path": "BookProc",
        "methods": [ "GET", "POST" ]
      }
    }
  }
}

-s, --source

To jest wymagane. Nazwa obiektu bazy danych: tabela, widok lub procedura składowana.

Example

dab add Book --source dbo.Books --permissions "anonymous:read"

Wynikowa konfiguracja

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ]
    }
  }
}

--source.key-fields

Wymagane dla widoków. Wymagane również w przypadku tabel bez wnioskowanego klucza PK. Niedozwolone dla procedur składowanych.

Example

dab add BookView --source dbo.MyView --source.type view --source.key-fields "id,region" --permissions "anonymous:read"

Wynikowa konfiguracja

{
  "entities": {
    "BookView": {
      "source": {
        "type": "view",
        "object": "dbo.MyView",
        "keyFields": [ "id", "region" ]
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ]
    }
  }
}

--source.params

Tylko procedury składowane. Pary rozdzielone name:value przecinkami. Niedozwolone dla tabel lub widoków.

Example

dab add BookProc --source dbo.MyProc --source.type stored-procedure --source.params "year:2024,active:true" --permissions "admin:execute"

Wynikowa konfiguracja

{
  "entities": {
    "BookProc": {
      "source": {
        "type": "stored-procedure",
        "object": "dbo.MyProc",
        "params": {
          "year": 2024,
          "active": true
        }
      },
      "permissions": [
        { "role": "admin", "actions": [ "execute" ] }
      ]
    }
  }
}

--source.type

Typ obiektu bazy danych. Wartość domyślna: table.

Example

dab add Book --source dbo.Books --source.type table --permissions "anonymous:read"

Wynikowa konfiguracja

{
  "entities": {
    "Book": {
      "source": {
        "type": "table",
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ]
    }
  }
}