kyozai.json
kyozai.jsonは、buildされたstatic assetsとkyoz.ai Platformの界面を定義します。Applicationのsource rootへ置きます。
Static assetsと開始path
json
{
"$schema": "https://kyoz.ai/schemas/application-v1.json",
"schemaVersion": 1,
"artifacts": {
"assets": "dist"
},
"paths": {
"learner": "/quiz.html",
"instructor": "/dashboard.html"
}
}artifacts.assets: browserへ配信するbuild成果物のdirectorypaths.learner: 受講者として開くpathpaths.instructor: 教員として開くpath
artifacts.assetsはkyozai.jsonからのrelative pathです。learnerとinstructorは配信されるassetsのrootから始まるpathで、両方を指定します。
Platform機能
Applicationが使う機能をcapabilitiesへ指定します。
json
{
"capabilities": [
"personal-objects",
"application-database"
]
}personal-objects: MembershipごとのObjectを保存するapplication-database: migrationで定義したtableをCourse内で利用する
browser codeからの利用方法はPlatform APIを参照してください。
Application Database
json
{
"capabilities": ["application-database"],
"database": {
"migrations": ["migrations/001-progress.sql"],
"tables": {
"progress": {
"scope": "membership",
"key": ["item_id"]
}
}
}
}migrationsは適用順にSQL fileを並べます。tablesにはAPIから利用するtableとscopeを定義します。
membership: Membershipごとの行。Course memberは専用APIで自身の行をupsert・deleteできるcourse: Course全体のtable。教員がSQL APIから利用する
membership scopeでは、Application内で行を識別するcolumnをkeyへ指定します。migration側のtableにはmembership_id columnを設け、membership_idとkeyを一意にします。
Browser egress
Applicationが外部originへ接続する場合は、送信先をorigin単位で指定します。
json
{
"egress": {
"browser": [
"https://cdn.jsdelivr.net",
"https://files.pythonhosted.org"
]
}
}指定していない外部originへのbrowser通信は失敗します。pathを含めず、httpまたはhttpsのoriginを指定します。