Autoentities

Pengaturan konfigurasi untuk pembuatan entitas otomatis berdasarkan aturan pencocokan pola. Autoentities adalah serekan ke entities bagian —ketika autoentities ada, entities tidak lagi diperlukan. Skema memungkinkan atau autoentitiesentities (atau keduanya). Jika keduanya ada, entitas yang ditentukan secara eksplisit lebih diutamakan daripada autoentities kecocokan dengan nama yang sama.

Petunjuk / Saran

Gunakan dab auto-config untuk membuat dan memperbarui autoentities definisi dari CLI, dan dab auto-config-simulate untuk mempratinjau objek mana yang cocok sebelum melakukan perubahan.

Pola

Harta benda Deskripsi
patterns.include Pola MSSQL LIKE untuk disertakan objek
patterns.exclude Pola MSSQL LIKE untuk objek yang akan dikecualikan
patterns.name Pola interpolasi untuk penamaan entitas

Template

Harta benda Deskripsi
template.rest.enabled Aktifkan REST untuk entitas yang cocok
template.graphql.enabled Aktifkan GraphQL untuk entitas yang cocok
template.mcp.dml-tools Mengaktifkan alat bahasa manipulasi data (DML) Model Context Protocol (MCP) untuk entitas yang cocok
template.health.enabled Aktifkan pemeriksaan kesehatan untuk entitas yang cocok
template.cache.enabled Mengaktifkan penembolokan respons untuk entitas yang cocok
template.cache.ttl-seconds Cache time-to-live dalam hitungan detik
template.cache.level Tingkat cache: L1 atau L1L2

Permissions

Harta benda Deskripsi
permissions[].role String nama peran
permissions[].actions Satu atau beberapa dari: create, , readupdate, delete, atau*

Gambaran umum format

{
  "autoentities": {
    "<definition-name>": {
      "patterns": {
        "include": [ "<string>" ],    // default: ["%.%"]
        "exclude": [ "<string>" ],    // default: null
        "name": "<string>"            // default: "{schema}_{object}"
      },
      "template": {
        "rest": { "enabled": <boolean> },      // default: true
        "graphql": { "enabled": <boolean> },   // default: true
        "mcp": { "dml-tools": <boolean> },     // default: true
        "health": { "enabled": <boolean> },    // default: true
        "cache": {
          "enabled": <boolean>,                // default: false
          "ttl-seconds": <integer>,            // default: null
          "level": "<string>"                  // default: "L1L2"
        }
      },
      "permissions": [
        {
          "role": "<string>",
          "actions": [ { "action": "<string>" } ]
        }
      ]
    }
  }
}

Nama definisi (autoentities)

Parent Harta benda Tipe Required Default
autoentities <definition-name> objek ✔️ Ya Tidak

Setiap kunci dalam autoentities objek adalah definisi bernama. Nama ini peka huruf besar/kecil dan berfungsi sebagai pengidentifikasi logis. Anda dapat menentukan beberapa definisi dengan pola dan izin yang berbeda.

Format

{
  "autoentities": {
    "<definition-name>": { ... }
  }
}

Example

{
  "autoentities": {
    "public-tables": {
      "patterns": { "include": [ "dbo.%" ] },
      "permissions": [ { "role": "anonymous", "actions": [ { "action": "read" } ] } ]
    },
    "admin-tables": {
      "patterns": { "include": [ "admin.%" ] },
      "permissions": [ { "role": "authenticated", "actions": [ { "action": "*" } ] } ]
    }
  }
}

Pola (nama autoentitiesdefinisi )

Parent Harta benda Tipe Required Default
autoentities.<definition-name> patterns objek ❌ Tidak Tidak

Menentukan aturan meliputi, mengecualikan, dan menamai yang menentukan objek database mana yang diekspos sebagai entitas.

Properti berlapis

Parent Harta benda Tipe Required Default
autoentities.<definition-name>.patterns include larik string ❌ Tidak ["%.%"]
autoentities.<definition-name>.patterns exclude larik string ❌ Tidak null
autoentities.<definition-name>.patterns name string ❌ Tidak "{schema}_{object}"
  • include—Satu atau beberapa pola MSSQL LIKE yang menentukan objek database mana yang akan disertakan. Gunakan % sebagai kartubebas. Format pola adalah schema.object (misalnya, dbo.% cocok dengan semua objek dalam dbo skema). Saat null atau dihilangkan, default ke ["%.%"] (semua objek dalam semua skema).

  • exclude—Satu atau beberapa pola MSSQL LIKE yang menentukan objek database mana yang akan dikecualikan. Pola pengecualian dievaluasi setelah menyertakan pola. Ketika null atau dihilangkan, tidak ada objek yang dikecualikan.

  • name—Pola interpolasi yang mengontrol bagaimana objek database yang cocok dinamai sebagai entitas. {schema} Mendukung dan {object} tempat penampung. Setiap nama yang diselesaikan harus unik di semua entitas dalam konfigurasi.

Format

{
  "autoentities": {
    "<definition-name>": {
      "patterns": {
        "include": [ "<string>" ],
        "exclude": [ "<string>" ],
        "name": "<string>"
      }
    }
  }
}

Example

{
  "autoentities": {
    "my-def": {
      "patterns": {
        "include": [ "dbo.%" ],
        "exclude": [ "dbo.internal%" ],
        "name": "{schema}_{object}"
      }
    }
  }
}

Dengan konfigurasi ini, setiap tabel dalam dbo skema (kecuali yang cocok dbo.internal%) diekspos sebagai entitas. Tabel bernama dbo.Products menjadi entitas bernama dbo_Products.

Nama (nama autoentitiesdefinisi pola )

Parent Harta benda Tipe Required Default
autoentities.<definition-name>.patterns name string ❌ Tidak "{schema}_{object}"

Mengontrol bagaimana objek database yang cocok dinamai sebagai entitas. Mendukung dua tempat penampung:

Placeholder Beralih ke
{schema} Nama skema objek database yang cocok
{object} Nama objek objek database yang cocok

Saat dihilangkan, default "{schema}_{object}" menggabungkan skema dan nama objek dengan garis bawah, membantu menjaga nama entitas yang dihasilkan tetap unik di seluruh skema.

Format

{
  "autoentities": {
    "<definition-name>": {
      "patterns": {
        "name": "<string>"
      }
    }
  }
}

Examples

Pola Objek database Nama entitas
"{schema}_{object}" dbo.Products dbo_Products
"{object}" dbo.Products Products
"{schema}.{object}" sales.Orders sales.Orders

REST (nama autoentitiesdefinisi templat )

Parent Harta benda Tipe Required Default
autoentities.<definition-name>.template rest objek ❌ Tidak Tidak

Properti berlapis

Parent Harta benda Tipe Required Default
autoentities.<definition-name>.template.rest enabled Boolean ❌ Tidak true

Format

{
  "autoentities": {
    "<definition-name>": {
      "template": {
        "rest": { "enabled": <boolean> }
      }
    }
  }
}

Example

{
  "autoentities": {
    "my-def": {
      "template": {
        "rest": { "enabled": false }
      }
    }
  }
}

GraphQL (nama autoentitiesdefinisi templat )

Parent Harta benda Tipe Required Default
autoentities.<definition-name>.template graphql objek ❌ Tidak Tidak

Properti berlapis

Parent Harta benda Tipe Required Default
autoentities.<definition-name>.template.graphql enabled Boolean ❌ Tidak true

Format

{
  "autoentities": {
    "<definition-name>": {
      "template": {
        "graphql": { "enabled": <boolean> }
      }
    }
  }
}

Example

{
  "autoentities": {
    "my-def": {
      "template": {
        "graphql": { "enabled": true }
      }
    }
  }
}

MCP (nama autoentitiesdefinisi templat )

Parent Harta benda Tipe Required Default
autoentities.<definition-name>.template mcp objek ❌ Tidak Tidak

Properti berlapis

Parent Harta benda Tipe Required Default
autoentities.<definition-name>.template.mcp dml-tools Boolean ❌ Tidak true

Mengaktifkan atau menonaktifkan alat bahasa manipulasi data (DML) MCP untuk semua entitas yang cocok.

Format

{
  "autoentities": {
    "<definition-name>": {
      "template": {
        "mcp": { "dml-tools": <boolean> }
      }
    }
  }
}

Example

{
  "autoentities": {
    "my-def": {
      "template": {
        "mcp": { "dml-tools": true }
      }
    }
  }
}

Kesehatan (nama autoentitiesdefinisi templat )

Parent Harta benda Tipe Required Default
autoentities.<definition-name>.template health objek ❌ Tidak Tidak

Properti berlapis

Parent Harta benda Tipe Required Default
autoentities.<definition-name>.template.health enabled Boolean ❌ Tidak true

Format

{
  "autoentities": {
    "<definition-name>": {
      "template": {
        "health": { "enabled": <boolean> }
      }
    }
  }
}

Example

{
  "autoentities": {
    "my-def": {
      "template": {
        "health": { "enabled": true }
      }
    }
  }
}

Cache (nama autoentitiesdefinisi templat )

Parent Harta benda Tipe Required Default
autoentities.<definition-name>.template cache objek ❌ Tidak Tidak

Mengaktifkan dan mengonfigurasi penembolokan respons untuk semua entitas yang cocok.

Properti berlapis

Parent Harta benda Tipe Required Default
autoentities.<definition-name>.template.cache enabled Boolean ❌ Tidak false
autoentities.<definition-name>.template.cache ttl-seconds bilangan bulat ❌ Tidak null
autoentities.<definition-name>.template.cache level enum (L1 | L1L2) ❌ Tidak "L1L2"

Properti level mengontrol tingkat cache mana yang digunakan:

Nilai Deskripsi
L1 Hanya cache dalam memori. Tercepat, tetapi tidak dibagikan di seluruh instans.
L1L2 Cache dalam memori ditambah cache terdistribusi (Redis). Dibagikan di seluruh instans yang diskalakan. Default.

Nota

Ketika ttl-seconds dihilangkan null atau dihilangkan, ia mewarisi nilai global dari runtime.cache.ttl-seconds.

Format

{
  "autoentities": {
    "<definition-name>": {
      "template": {
        "cache": {
          "enabled": <boolean>,
          "ttl-seconds": <integer>,
          "level": "<L1 | L1L2>"
        }
      }
    }
  }
}

Example

{
  "autoentities": {
    "my-def": {
      "template": {
        "cache": {
          "enabled": true,
          "ttl-seconds": 30,
          "level": "L1L2"
        }
      }
    }
  }
}

Izin (nama autoentitiesdefinisi )

Parent Harta benda Tipe Required Default
autoentities.<definition-name> permissions array ❌ Tidak Tidak

Izin diterapkan ke setiap entitas yang cocok dengan definisi ini autoentities . Setiap elemen adalah objek dengan role array dan actions .

Properti berlapis

Parent Harta benda Tipe Required Default
autoentities.<definition-name>.permissions[] role string ✔️ Ya Tidak
autoentities.<definition-name>.permissions[] actions array atau string ✔️ Ya Tidak
autoentities.<definition-name>.permissions[].actions[] action string ✔️ Ya Tidak

Nilai tindakan yang didukung: create, , readupdate, delete, atau * (kartubebas meluas ke keempat tindakan CRUD).

Format

{
  "autoentities": {
    "<definition-name>": {
      "permissions": [
        {
          "role": "<string>",
          "actions": [ { "action": "<string>" } ]
        }
      ]
    }
  }
}

Example

{
  "autoentities": {
    "my-def": {
      "patterns": {
        "include": [ "dbo.%" ]
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] },
        { "role": "authenticated", "actions": [ { "action": "*" } ] }
      ]
    }
  }
}

Contoh lengkap

{
  "autoentities": {
    "my-def": {
      "patterns": {
        "include": [ "dbo.%" ],
        "exclude": [ "dbo.internal%" ],
        "name": "{schema}_{object}"
      },
      "template": {
        "rest": { "enabled": true },
        "graphql": { "enabled": true },
        "mcp": { "dml-tools": true },
        "health": { "enabled": true },
        "cache": { "enabled": true, "ttl-seconds": 30, "level": "L1L2" }
      },
      "permissions": [
        { "role": "anonymous", "actions": [ { "action": "read" } ] }
      ]
    }
  }
}

Dengan konfigurasi ini, setiap tabel dalam dbo skema (kecuali yang cocok dbo.internal%) secara otomatis diekspos sebagai entitas DAB. Setiap entitas diberi nama menggunakan {schema}_{object} pola (misalnya, dbo_Products), memiliki REST, GraphQL, MCP, dan pemeriksaan kesehatan yang diaktifkan, menggunakan penembolokan dengan time-to-live 30 detik, dan memberikan read akses ke peran tersebut anonymous .