Condividi tramite


add comando

Aggiungere una nuova definizione di entità a un file di configurazione di Generatore API dati esistente. È necessario avere già una configurazione creata con dab init. Usare dab update per modificare le entità dopo la creazione.

Suggerimento

Usare dab add per creare nuove entità e dab update per evolverle. Il mapping del nome del campo (--map) è disponibile solo in update, non in add.

Sintassi

dab add <entity-name> [options]

Sguardo rapido

Opzione Riassunto
<entity-name> Argomento posizionale obbligatorio. Nome dell'entità logica.
-c, --config Percorso del file di configurazione. Valore predefinito dab-config.json.
--cache.enabled Abilitare/disabilitare la memorizzazione nella cache per l'entità.
--cache.ttl Tempo di memorizzazione nella cache in secondi.
--description Descrizione in formato libero per l'entità.
--fields.exclude Campi esclusi delimitati da virgole.
--fields.include Campi consentiti delimitati da virgole (* = all).
--graphql Esposizione graphQL: false, true, singularo singular:plural.
--graphql.operation Solo stored procedure. query o mutation (mutazione predefinita).
--permissions Obbligatorio. Una o più role:actions coppie. Ripetibile.
--policy-database Filtro in stile OData applicato nella query di database.
--policy-request Criteri di richiesta valutati prima della chiamata al database.
--rest Esposizione REST: false, trueo route personalizzata.
--rest.methods Solo stored procedure. Verbi HTTP consentiti. POST predefinito.
-s, --source Obbligatorio. Nome dell'oggetto di database (tabella, vista o stored procedure).
--source.key-fields Obbligatorio per le visualizzazioni o quando l'infrastruttura a chiave pubblica non viene dedotta. Non consentito per procs.
--source.params Solo stored procedure. Valori dei parametri predefiniti.
--source.type Tipo di origine: table, view, stored-procedure (tabella predefinita).

<entity-name>

Nome logico dell'entità nella configurazione. Distinzione tra maiuscole e minuscole.

Example

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

Configurazione risultante

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

-c, --config

Percorso del file di configurazione. Il valore predefinito è dab-config.json.

Example

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

--cache.enabled

Abilitare o disabilitare la memorizzazione nella cache.

Example

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

Configurazione risultante

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

--cache.ttl

Tempo di memorizzazione nella cache in secondi.

Example

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

Configurazione risultante

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

--description

Descrizione in formato libero dell'entità.

Example

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

Configurazione risultante

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

--fields.exclude

Elenco delimitato da virgole di campi da escludere.

Example

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

Configurazione risultante

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

--fields.include

Elenco delimitato da virgole di campi da esporre.

Example

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

Configurazione risultante

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

--graphql

Controllare l'esposizione di GraphQL.

Example

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

Configurazione risultante

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

--graphql.operation

Solo stored procedure. Tipo di operazione GraphQL. Il valore predefinito è mutation.

Example

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

Configurazione risultante

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

--permissions

Definisce le coppie role→actions. Usare flag ripetuti per più ruoli.

Example

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

Configurazione risultante

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

--policy-database

Criteri a livello di database.

Example

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

Configurazione risultante

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

--policy-request

Criteri a livello di richiesta.

Example

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

Configurazione risultante

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

--rest

Controllare l'esposizione REST.

Example

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

Configurazione risultante

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

--rest.methods

Solo stored procedure. Verbi HTTP consentiti per l'esecuzione. Il valore predefinito è POST. Ignorato per tabelle/viste.

Example

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

Configurazione risultante

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

-s, --source

Obbligatorio. Nome dell'oggetto di database: tabella, vista o stored procedure.

Example

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

Configurazione risultante

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

--source.key-fields

Obbligatorio per le visualizzazioni. Obbligatorio anche per le tabelle senza un'infrastruttura a chiave pubblica inferibile. Non consentito per le stored procedure.

Example

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

Configurazione risultante

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

--source.params

Solo stored procedure. Coppie delimitate da name:value virgole. Non consentito per tabelle o viste.

Example

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

Configurazione risultante

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

--source.type

Tipo di oggetto di database. Impostazione predefinita: table.

Example

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

Configurazione risultante

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