diff --git a/config/sync/admin-role.strapi-author.json b/config/sync/admin-role.strapi-author.json new file mode 100644 index 0000000..81f7bff --- /dev/null +++ b/config/sync/admin-role.strapi-author.json @@ -0,0 +1,463 @@ +{ + "name": "Author", + "code": "strapi-author", + "description": "Authors can manage the content they have created.", + "permissions": [ + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::code-challenge.code-challenge", + "properties": { + "fields": [ + "startingCode", + "tests.label", + "tests.internalTest", + "tests.furtherExplanation", + "prompt", + "internalLabel", + "internalNotes", + "hints.text", + "hints.recommendedTimeBeforeViewing", + "getStartingCodeFromPreviousChallenge" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::code-challenge.code-challenge", + "properties": {}, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::code-challenge.code-challenge", + "properties": { + "fields": [ + "startingCode", + "tests.label", + "tests.internalTest", + "tests.furtherExplanation", + "prompt", + "internalLabel", + "internalNotes", + "hints.text", + "hints.recommendedTimeBeforeViewing", + "getStartingCodeFromPreviousChallenge" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::code-challenge.code-challenge", + "properties": { + "fields": [ + "startingCode", + "tests.label", + "tests.internalTest", + "tests.furtherExplanation", + "prompt", + "internalLabel", + "internalNotes", + "hints.text", + "hints.recommendedTimeBeforeViewing", + "getStartingCodeFromPreviousChallenge" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::course.course", + "properties": { + "fields": [ + "name", + "slug", + "modules" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::course.course", + "properties": {}, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::course.course", + "properties": { + "fields": [ + "name", + "slug", + "modules" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::course.course", + "properties": { + "fields": [ + "name", + "slug", + "modules" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::lesson.lesson", + "properties": { + "fields": [ + "slug", + "name", + "isHard", + "internalNotes", + "externalResources.name", + "externalResources.link", + "externalResources.type", + "sublessons", + "module", + "syntaxEntry" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::lesson.lesson", + "properties": {}, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::lesson.lesson", + "properties": { + "fields": [ + "slug", + "name", + "isHard", + "internalNotes", + "externalResources.name", + "externalResources.link", + "externalResources.type", + "sublessons", + "module", + "syntaxEntry" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::lesson.lesson", + "properties": { + "fields": [ + "slug", + "name", + "isHard", + "internalNotes", + "externalResources.name", + "externalResources.link", + "externalResources.type", + "sublessons", + "module", + "syntaxEntry" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::module.module", + "properties": { + "fields": [ + "name", + "lessons", + "moduleLessons.lesson" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::module.module", + "properties": {}, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::module.module", + "properties": { + "fields": [ + "name", + "lessons", + "moduleLessons.lesson" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::module.module", + "properties": { + "fields": [ + "name", + "lessons", + "moduleLessons.lesson" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::multiple-choice-challenge.multiple-choice-challenge", + "properties": { + "fields": [ + "options.text", + "options.isCorrect", + "options.incorrectChoiceExplanation", + "prompt", + "internalLabel", + "canSelectMultipleOptions" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::multiple-choice-challenge.multiple-choice-challenge", + "properties": {}, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::multiple-choice-challenge.multiple-choice-challenge", + "properties": { + "fields": [ + "options.text", + "options.isCorrect", + "options.incorrectChoiceExplanation", + "prompt", + "internalLabel", + "canSelectMultipleOptions" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::multiple-choice-challenge.multiple-choice-challenge", + "properties": { + "fields": [ + "options.text", + "options.isCorrect", + "options.incorrectChoiceExplanation", + "prompt", + "internalLabel", + "canSelectMultipleOptions" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::sublesson.sublesson", + "properties": { + "fields": [ + "name", + "description", + "internalNotes", + "lesson", + "challenges.codeChallenge", + "challenges.multipleChoiceChallenge", + "syntaxEntry" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::sublesson.sublesson", + "properties": {}, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::sublesson.sublesson", + "properties": { + "fields": [ + "name", + "description", + "internalNotes", + "lesson", + "challenges.codeChallenge", + "challenges.multipleChoiceChallenge", + "syntaxEntry" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::sublesson.sublesson", + "properties": { + "fields": [ + "name", + "description", + "internalNotes", + "lesson", + "challenges.codeChallenge", + "challenges.multipleChoiceChallenge", + "syntaxEntry" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::syntax-entry.syntax-entry", + "properties": { + "fields": [ + "content", + "name", + "internalNotes", + "maxWidth", + "sublesson", + "lesson" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::syntax-entry.syntax-entry", + "properties": {}, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::syntax-entry.syntax-entry", + "properties": { + "fields": [ + "content", + "name", + "internalNotes", + "maxWidth", + "sublesson", + "lesson" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::syntax-entry.syntax-entry", + "properties": { + "fields": [ + "content", + "name", + "internalNotes", + "maxWidth", + "sublesson", + "lesson" + ] + }, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::upload.assets.copy-link", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::upload.assets.create", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::upload.assets.download", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::upload.assets.update", + "subject": null, + "properties": {}, + "conditions": [ + "admin::is-creator" + ] + }, + { + "action": "plugin::upload.read", + "subject": null, + "properties": {}, + "conditions": [ + "admin::is-creator" + ] + } + ] +} \ No newline at end of file diff --git a/config/sync/admin-role.strapi-editor.json b/config/sync/admin-role.strapi-editor.json new file mode 100644 index 0000000..15d5e8c --- /dev/null +++ b/config/sync/admin-role.strapi-editor.json @@ -0,0 +1,445 @@ +{ + "name": "Editor", + "code": "strapi-editor", + "description": "Editors can manage and publish contents including those of other users.", + "permissions": [ + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::code-challenge.code-challenge", + "properties": { + "fields": [ + "startingCode", + "tests.label", + "tests.internalTest", + "tests.furtherExplanation", + "prompt", + "internalLabel", + "internalNotes", + "hints.text", + "hints.recommendedTimeBeforeViewing", + "getStartingCodeFromPreviousChallenge" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::code-challenge.code-challenge", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.publish", + "subject": "api::code-challenge.code-challenge", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::code-challenge.code-challenge", + "properties": { + "fields": [ + "startingCode", + "tests.label", + "tests.internalTest", + "tests.furtherExplanation", + "prompt", + "internalLabel", + "internalNotes", + "hints.text", + "hints.recommendedTimeBeforeViewing", + "getStartingCodeFromPreviousChallenge" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::code-challenge.code-challenge", + "properties": { + "fields": [ + "startingCode", + "tests.label", + "tests.internalTest", + "tests.furtherExplanation", + "prompt", + "internalLabel", + "internalNotes", + "hints.text", + "hints.recommendedTimeBeforeViewing", + "getStartingCodeFromPreviousChallenge" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::course.course", + "properties": { + "fields": [ + "name", + "slug", + "modules" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::course.course", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.publish", + "subject": "api::course.course", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::course.course", + "properties": { + "fields": [ + "name", + "slug", + "modules" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::course.course", + "properties": { + "fields": [ + "name", + "slug", + "modules" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::lesson.lesson", + "properties": { + "fields": [ + "slug", + "name", + "isHard", + "internalNotes", + "externalResources.name", + "externalResources.link", + "externalResources.type", + "sublessons", + "module", + "syntaxEntry" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::lesson.lesson", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.publish", + "subject": "api::lesson.lesson", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::lesson.lesson", + "properties": { + "fields": [ + "slug", + "name", + "isHard", + "internalNotes", + "externalResources.name", + "externalResources.link", + "externalResources.type", + "sublessons", + "module", + "syntaxEntry" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::lesson.lesson", + "properties": { + "fields": [ + "slug", + "name", + "isHard", + "internalNotes", + "externalResources.name", + "externalResources.link", + "externalResources.type", + "sublessons", + "module", + "syntaxEntry" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::module.module", + "properties": { + "fields": [ + "name", + "lessons", + "moduleLessons.lesson" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::module.module", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.publish", + "subject": "api::module.module", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::module.module", + "properties": { + "fields": [ + "name", + "lessons", + "moduleLessons.lesson" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::module.module", + "properties": { + "fields": [ + "name", + "lessons", + "moduleLessons.lesson" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::multiple-choice-challenge.multiple-choice-challenge", + "properties": { + "fields": [ + "options.text", + "options.isCorrect", + "options.incorrectChoiceExplanation", + "prompt", + "internalLabel", + "canSelectMultipleOptions" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::multiple-choice-challenge.multiple-choice-challenge", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.publish", + "subject": "api::multiple-choice-challenge.multiple-choice-challenge", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::multiple-choice-challenge.multiple-choice-challenge", + "properties": { + "fields": [ + "options.text", + "options.isCorrect", + "options.incorrectChoiceExplanation", + "prompt", + "internalLabel", + "canSelectMultipleOptions" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::multiple-choice-challenge.multiple-choice-challenge", + "properties": { + "fields": [ + "options.text", + "options.isCorrect", + "options.incorrectChoiceExplanation", + "prompt", + "internalLabel", + "canSelectMultipleOptions" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::sublesson.sublesson", + "properties": { + "fields": [ + "name", + "description", + "internalNotes", + "lesson", + "challenges.codeChallenge", + "challenges.multipleChoiceChallenge", + "syntaxEntry" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::sublesson.sublesson", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.publish", + "subject": "api::sublesson.sublesson", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::sublesson.sublesson", + "properties": { + "fields": [ + "name", + "description", + "internalNotes", + "lesson", + "challenges.codeChallenge", + "challenges.multipleChoiceChallenge", + "syntaxEntry" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::sublesson.sublesson", + "properties": { + "fields": [ + "name", + "description", + "internalNotes", + "lesson", + "challenges.codeChallenge", + "challenges.multipleChoiceChallenge", + "syntaxEntry" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::syntax-entry.syntax-entry", + "properties": { + "fields": [ + "content", + "name", + "internalNotes", + "maxWidth", + "sublesson", + "lesson" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::syntax-entry.syntax-entry", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.publish", + "subject": "api::syntax-entry.syntax-entry", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::syntax-entry.syntax-entry", + "properties": { + "fields": [ + "content", + "name", + "internalNotes", + "maxWidth", + "sublesson", + "lesson" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::syntax-entry.syntax-entry", + "properties": { + "fields": [ + "content", + "name", + "internalNotes", + "maxWidth", + "sublesson", + "lesson" + ] + }, + "conditions": [] + }, + { + "action": "plugin::upload.assets.copy-link", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::upload.assets.create", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::upload.assets.download", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::upload.assets.update", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::upload.read", + "subject": null, + "properties": {}, + "conditions": [] + } + ] +} \ No newline at end of file diff --git a/config/sync/admin-role.strapi-super-admin.json b/config/sync/admin-role.strapi-super-admin.json new file mode 100644 index 0000000..861d4e2 --- /dev/null +++ b/config/sync/admin-role.strapi-super-admin.json @@ -0,0 +1,751 @@ +{ + "name": "Super Admin", + "code": "strapi-super-admin", + "description": "Super Admins can access and manage all features and settings.", + "permissions": [ + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::code-challenge.code-challenge", + "properties": { + "fields": [ + "startingCode", + "tests.label", + "tests.internalTest", + "tests.furtherExplanation", + "prompt", + "internalLabel", + "internalNotes", + "hints.text", + "hints.recommendedTimeBeforeViewing", + "getStartingCodeFromPreviousChallenge" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::code-challenge.code-challenge", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.publish", + "subject": "api::code-challenge.code-challenge", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::code-challenge.code-challenge", + "properties": { + "fields": [ + "startingCode", + "tests.label", + "tests.internalTest", + "tests.furtherExplanation", + "prompt", + "internalLabel", + "internalNotes", + "hints.text", + "hints.recommendedTimeBeforeViewing", + "getStartingCodeFromPreviousChallenge" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::code-challenge.code-challenge", + "properties": { + "fields": [ + "startingCode", + "tests.label", + "tests.internalTest", + "tests.furtherExplanation", + "prompt", + "internalLabel", + "internalNotes", + "hints.text", + "hints.recommendedTimeBeforeViewing", + "getStartingCodeFromPreviousChallenge" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::course.course", + "properties": { + "fields": [ + "name", + "slug", + "modules" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::course.course", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.publish", + "subject": "api::course.course", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::course.course", + "properties": { + "fields": [ + "name", + "slug", + "modules" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::course.course", + "properties": { + "fields": [ + "name", + "slug", + "modules" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::lesson.lesson", + "properties": { + "fields": [ + "slug", + "name", + "isHard", + "internalNotes", + "externalResources.name", + "externalResources.link", + "externalResources.type", + "sublessons", + "module", + "syntaxEntry" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::lesson.lesson", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.publish", + "subject": "api::lesson.lesson", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::lesson.lesson", + "properties": { + "fields": [ + "slug", + "name", + "isHard", + "internalNotes", + "externalResources.name", + "externalResources.link", + "externalResources.type", + "sublessons", + "module", + "syntaxEntry" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::lesson.lesson", + "properties": { + "fields": [ + "slug", + "name", + "isHard", + "internalNotes", + "externalResources.name", + "externalResources.link", + "externalResources.type", + "sublessons", + "module", + "syntaxEntry" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::module.module", + "properties": { + "fields": [ + "name", + "lessons", + "moduleLessons.lesson" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::module.module", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.publish", + "subject": "api::module.module", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::module.module", + "properties": { + "fields": [ + "name", + "lessons", + "moduleLessons.lesson" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::module.module", + "properties": { + "fields": [ + "name", + "lessons", + "moduleLessons.lesson" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::multiple-choice-challenge.multiple-choice-challenge", + "properties": { + "fields": [ + "options.text", + "options.isCorrect", + "options.incorrectChoiceExplanation", + "prompt", + "internalLabel", + "canSelectMultipleOptions" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::multiple-choice-challenge.multiple-choice-challenge", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.publish", + "subject": "api::multiple-choice-challenge.multiple-choice-challenge", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::multiple-choice-challenge.multiple-choice-challenge", + "properties": { + "fields": [ + "options.text", + "options.isCorrect", + "options.incorrectChoiceExplanation", + "prompt", + "internalLabel", + "canSelectMultipleOptions" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::multiple-choice-challenge.multiple-choice-challenge", + "properties": { + "fields": [ + "options.text", + "options.isCorrect", + "options.incorrectChoiceExplanation", + "prompt", + "internalLabel", + "canSelectMultipleOptions" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::sublesson.sublesson", + "properties": { + "fields": [ + "name", + "description", + "internalNotes", + "lesson", + "challenges.codeChallenge", + "challenges.multipleChoiceChallenge", + "syntaxEntry" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::sublesson.sublesson", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.publish", + "subject": "api::sublesson.sublesson", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::sublesson.sublesson", + "properties": { + "fields": [ + "name", + "description", + "internalNotes", + "lesson", + "challenges.codeChallenge", + "challenges.multipleChoiceChallenge", + "syntaxEntry" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::sublesson.sublesson", + "properties": { + "fields": [ + "name", + "description", + "internalNotes", + "lesson", + "challenges.codeChallenge", + "challenges.multipleChoiceChallenge", + "syntaxEntry" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.create", + "subject": "api::syntax-entry.syntax-entry", + "properties": { + "fields": [ + "content", + "name", + "internalNotes", + "maxWidth", + "sublesson", + "lesson" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "api::syntax-entry.syntax-entry", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.publish", + "subject": "api::syntax-entry.syntax-entry", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "api::syntax-entry.syntax-entry", + "properties": { + "fields": [ + "content", + "name", + "internalNotes", + "maxWidth", + "sublesson", + "lesson" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "api::syntax-entry.syntax-entry", + "properties": { + "fields": [ + "content", + "name", + "internalNotes", + "maxWidth", + "sublesson", + "lesson" + ] + }, + "conditions": [] + }, + { + "action": "admin::api-tokens.create", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "admin::api-tokens.delete", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "admin::api-tokens.read", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "admin::api-tokens.update", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "admin::marketplace.plugins.install", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "admin::marketplace.plugins.uninstall", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "admin::marketplace.read", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "admin::roles.create", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "admin::roles.delete", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "admin::roles.read", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "admin::roles.update", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "admin::users.create", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "admin::users.delete", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "admin::users.read", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "admin::users.update", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "admin::webhooks.create", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "admin::webhooks.delete", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "admin::webhooks.read", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "admin::webhooks.update", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::config-sync.menu-link", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::config-sync.settings.read", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.collection-types.configure-view", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.components.configure-layout", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.create", + "subject": "plugin::users-permissions.user", + "properties": { + "fields": [ + "username", + "email", + "provider", + "password", + "resetPasswordToken", + "confirmationToken", + "confirmed", + "blocked", + "role" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.delete", + "subject": "plugin::users-permissions.user", + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.read", + "subject": "plugin::users-permissions.user", + "properties": { + "fields": [ + "username", + "email", + "provider", + "password", + "resetPasswordToken", + "confirmationToken", + "confirmed", + "blocked", + "role" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.explorer.update", + "subject": "plugin::users-permissions.user", + "properties": { + "fields": [ + "username", + "email", + "provider", + "password", + "resetPasswordToken", + "confirmationToken", + "confirmed", + "blocked", + "role" + ] + }, + "conditions": [] + }, + { + "action": "plugin::content-manager.single-types.configure-view", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::content-type-builder.read", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::email.settings.read", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::i18n.locale.create", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::i18n.locale.delete", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::i18n.locale.read", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::i18n.locale.update", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::upload.assets.copy-link", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::upload.assets.create", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::upload.assets.download", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::upload.assets.update", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::upload.read", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::upload.settings.read", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::users-permissions.advanced-settings.read", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::users-permissions.advanced-settings.update", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::users-permissions.email-templates.read", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::users-permissions.email-templates.update", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::users-permissions.providers.read", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::users-permissions.providers.update", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::users-permissions.roles.create", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::users-permissions.roles.delete", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::users-permissions.roles.read", + "subject": null, + "properties": {}, + "conditions": [] + }, + { + "action": "plugin::users-permissions.roles.update", + "subject": null, + "properties": {}, + "conditions": [] + } + ] +} \ No newline at end of file diff --git a/config/sync/core-store.core_admin_auth.json b/config/sync/core-store.core_admin_auth.json new file mode 100644 index 0000000..8d5a66d --- /dev/null +++ b/config/sync/core-store.core_admin_auth.json @@ -0,0 +1,12 @@ +{ + "key": "core_admin_auth", + "value": { + "providers": { + "autoRegister": false, + "defaultRole": null + } + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_components##challenge.challenge-hints.json b/config/sync/core-store.plugin_content_manager_configuration_components##challenge.challenge-hints.json new file mode 100644 index 0000000..ff1274c --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_components##challenge.challenge-hints.json @@ -0,0 +1,78 @@ +{ + "key": "plugin_content_manager_configuration_components::challenge.challenge-hints", + "value": { + "uid": "challenge.challenge-hints", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "id", + "defaultSortBy": "id", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": false, + "sortable": false + } + }, + "text": { + "edit": { + "label": "Text", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Text", + "searchable": false, + "sortable": false + } + }, + "recommendedTimeBeforeViewing": { + "edit": { + "label": "RecommendedTimeBeforeViewing", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "RecommendedTimeBeforeViewing", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "recommendedTimeBeforeViewing" + ], + "edit": [ + [ + { + "name": "text", + "size": 12 + } + ], + [ + { + "name": "recommendedTimeBeforeViewing", + "size": 4 + } + ] + ], + "editRelations": [] + }, + "isComponent": true + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_components##challenge.code-challenge-test.json b/config/sync/core-store.plugin_content_manager_configuration_components##challenge.code-challenge-test.json new file mode 100644 index 0000000..597a6c8 --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_components##challenge.code-challenge-test.json @@ -0,0 +1,98 @@ +{ + "key": "plugin_content_manager_configuration_components::challenge.code-challenge-test", + "value": { + "uid": "challenge.code-challenge-test", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "label", + "defaultSortBy": "label", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": false, + "sortable": false + } + }, + "label": { + "edit": { + "label": "Label", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Label", + "searchable": true, + "sortable": true + } + }, + "internalTest": { + "edit": { + "label": "InternalTest", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "InternalTest", + "searchable": false, + "sortable": false + } + }, + "furtherExplanation": { + "edit": { + "label": "FurtherExplanation", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "FurtherExplanation", + "searchable": false, + "sortable": false + } + } + }, + "layouts": { + "list": [ + "id", + "label" + ], + "edit": [ + [ + { + "name": "label", + "size": 6 + } + ], + [ + { + "name": "internalTest", + "size": 12 + } + ], + [ + { + "name": "furtherExplanation", + "size": 12 + } + ] + ], + "editRelations": [] + }, + "isComponent": true + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_components##challenge.multiple-choice-options.json b/config/sync/core-store.plugin_content_manager_configuration_components##challenge.multiple-choice-options.json new file mode 100644 index 0000000..1b6de03 --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_components##challenge.multiple-choice-options.json @@ -0,0 +1,98 @@ +{ + "key": "plugin_content_manager_configuration_components::challenge.multiple-choice-options", + "value": { + "uid": "challenge.multiple-choice-options", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "id", + "defaultSortBy": "id", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": false, + "sortable": false + } + }, + "text": { + "edit": { + "label": "Text", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Text", + "searchable": false, + "sortable": false + } + }, + "isCorrect": { + "edit": { + "label": "IsCorrect", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "IsCorrect", + "searchable": true, + "sortable": true + } + }, + "incorrectChoiceExplanation": { + "edit": { + "label": "IncorrectChoiceExplanation", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "IncorrectChoiceExplanation", + "searchable": false, + "sortable": false + } + } + }, + "layouts": { + "list": [ + "id", + "isCorrect" + ], + "edit": [ + [ + { + "name": "text", + "size": 12 + } + ], + [ + { + "name": "isCorrect", + "size": 4 + } + ], + [ + { + "name": "incorrectChoiceExplanation", + "size": 12 + } + ] + ], + "editRelations": [] + }, + "isComponent": true + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_components##content.challenges.json b/config/sync/core-store.plugin_content_manager_configuration_components##content.challenges.json new file mode 100644 index 0000000..501b14b --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_components##content.challenges.json @@ -0,0 +1,79 @@ +{ + "key": "plugin_content_manager_configuration_components::content.challenges", + "value": { + "uid": "content.challenges", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "id", + "defaultSortBy": "id", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": false, + "sortable": false + } + }, + "codeChallenge": { + "edit": { + "label": "CodeChallenge", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "internalLabel" + }, + "list": { + "label": "CodeChallenge", + "searchable": true, + "sortable": true + } + }, + "multipleChoiceChallenge": { + "edit": { + "label": "MultipleChoiceChallenge", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "internalLabel" + }, + "list": { + "label": "MultipleChoiceChallenge", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "codeChallenge", + "multipleChoiceChallenge" + ], + "edit": [ + [ + { + "name": "codeChallenge", + "size": 6 + }, + { + "name": "multipleChoiceChallenge", + "size": 6 + } + ] + ], + "editRelations": [] + }, + "isComponent": true + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_components##content.external-resource.json b/config/sync/core-store.plugin_content_manager_configuration_components##content.external-resource.json new file mode 100644 index 0000000..3060e84 --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_components##content.external-resource.json @@ -0,0 +1,98 @@ +{ + "key": "plugin_content_manager_configuration_components::content.external-resource", + "value": { + "uid": "content.external-resource", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "name", + "defaultSortBy": "name", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": false, + "sortable": false + } + }, + "name": { + "edit": { + "label": "Name", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Name", + "searchable": true, + "sortable": true + } + }, + "link": { + "edit": { + "label": "Link", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Link", + "searchable": true, + "sortable": true + } + }, + "type": { + "edit": { + "label": "Type", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Type", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "name", + "link", + "type" + ], + "edit": [ + [ + { + "name": "name", + "size": 6 + }, + { + "name": "link", + "size": 6 + } + ], + [ + { + "name": "type", + "size": 6 + } + ] + ], + "editRelations": [] + }, + "isComponent": true + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_components##misc.module-lesson.json b/config/sync/core-store.plugin_content_manager_configuration_components##misc.module-lesson.json new file mode 100644 index 0000000..22ca275 --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_components##misc.module-lesson.json @@ -0,0 +1,59 @@ +{ + "key": "plugin_content_manager_configuration_components::misc.module-lesson", + "value": { + "uid": "misc.module-lesson", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "id", + "defaultSortBy": "id", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": false, + "sortable": false + } + }, + "lesson": { + "edit": { + "label": "Lesson", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "slug" + }, + "list": { + "label": "Lesson", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "lesson" + ], + "edit": [ + [ + { + "name": "lesson", + "size": 6 + } + ] + ], + "editRelations": [] + }, + "isComponent": true + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_content_types##admin##api-token.json b/config/sync/core-store.plugin_content_manager_configuration_content_types##admin##api-token.json new file mode 100644 index 0000000..18ed84e --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_content_types##admin##api-token.json @@ -0,0 +1,143 @@ +{ + "key": "plugin_content_manager_configuration_content_types::admin::api-token", + "value": { + "uid": "admin::api-token", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "name", + "defaultSortBy": "name", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": true, + "sortable": true + } + }, + "name": { + "edit": { + "label": "Name", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Name", + "searchable": true, + "sortable": true + } + }, + "description": { + "edit": { + "label": "Description", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Description", + "searchable": true, + "sortable": true + } + }, + "type": { + "edit": { + "label": "Type", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Type", + "searchable": true, + "sortable": true + } + }, + "accessKey": { + "edit": { + "label": "AccessKey", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "AccessKey", + "searchable": true, + "sortable": true + } + }, + "createdAt": { + "edit": { + "label": "CreatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "CreatedAt", + "searchable": true, + "sortable": true + } + }, + "updatedAt": { + "edit": { + "label": "UpdatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "UpdatedAt", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "name", + "description", + "type" + ], + "editRelations": [], + "edit": [ + [ + { + "name": "name", + "size": 6 + }, + { + "name": "description", + "size": 6 + } + ], + [ + { + "name": "type", + "size": 6 + }, + { + "name": "accessKey", + "size": 6 + } + ] + ] + } + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_content_types##admin##permission.json b/config/sync/core-store.plugin_content_manager_configuration_content_types##admin##permission.json new file mode 100644 index 0000000..df771b7 --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_content_types##admin##permission.json @@ -0,0 +1,162 @@ +{ + "key": "plugin_content_manager_configuration_content_types::admin::permission", + "value": { + "uid": "admin::permission", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "action", + "defaultSortBy": "action", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": true, + "sortable": true + } + }, + "action": { + "edit": { + "label": "Action", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Action", + "searchable": true, + "sortable": true + } + }, + "subject": { + "edit": { + "label": "Subject", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Subject", + "searchable": true, + "sortable": true + } + }, + "properties": { + "edit": { + "label": "Properties", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Properties", + "searchable": false, + "sortable": false + } + }, + "conditions": { + "edit": { + "label": "Conditions", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Conditions", + "searchable": false, + "sortable": false + } + }, + "role": { + "edit": { + "label": "Role", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "name" + }, + "list": { + "label": "Role", + "searchable": true, + "sortable": true + } + }, + "createdAt": { + "edit": { + "label": "CreatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "CreatedAt", + "searchable": true, + "sortable": true + } + }, + "updatedAt": { + "edit": { + "label": "UpdatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "UpdatedAt", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "action", + "subject", + "role" + ], + "editRelations": [ + "role" + ], + "edit": [ + [ + { + "name": "action", + "size": 6 + }, + { + "name": "subject", + "size": 6 + } + ], + [ + { + "name": "properties", + "size": 12 + } + ], + [ + { + "name": "conditions", + "size": 12 + } + ] + ] + } + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_content_types##admin##role.json b/config/sync/core-store.plugin_content_manager_configuration_content_types##admin##role.json new file mode 100644 index 0000000..5709d97 --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_content_types##admin##role.json @@ -0,0 +1,158 @@ +{ + "key": "plugin_content_manager_configuration_content_types::admin::role", + "value": { + "uid": "admin::role", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "name", + "defaultSortBy": "name", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": true, + "sortable": true + } + }, + "name": { + "edit": { + "label": "Name", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Name", + "searchable": true, + "sortable": true + } + }, + "code": { + "edit": { + "label": "Code", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Code", + "searchable": true, + "sortable": true + } + }, + "description": { + "edit": { + "label": "Description", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Description", + "searchable": true, + "sortable": true + } + }, + "users": { + "edit": { + "label": "Users", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "firstname" + }, + "list": { + "label": "Users", + "searchable": false, + "sortable": false + } + }, + "permissions": { + "edit": { + "label": "Permissions", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "action" + }, + "list": { + "label": "Permissions", + "searchable": false, + "sortable": false + } + }, + "createdAt": { + "edit": { + "label": "CreatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "CreatedAt", + "searchable": true, + "sortable": true + } + }, + "updatedAt": { + "edit": { + "label": "UpdatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "UpdatedAt", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "name", + "code", + "description" + ], + "editRelations": [ + "users", + "permissions" + ], + "edit": [ + [ + { + "name": "name", + "size": 6 + }, + { + "name": "code", + "size": 6 + } + ], + [ + { + "name": "description", + "size": 6 + } + ] + ] + } + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_content_types##admin##user.json b/config/sync/core-store.plugin_content_manager_configuration_content_types##admin##user.json new file mode 100644 index 0000000..299addf --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_content_types##admin##user.json @@ -0,0 +1,274 @@ +{ + "key": "plugin_content_manager_configuration_content_types::admin::user", + "value": { + "uid": "admin::user", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "firstname", + "defaultSortBy": "firstname", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": true, + "sortable": true + } + }, + "firstname": { + "edit": { + "label": "Firstname", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Firstname", + "searchable": true, + "sortable": true + } + }, + "lastname": { + "edit": { + "label": "Lastname", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Lastname", + "searchable": true, + "sortable": true + } + }, + "username": { + "edit": { + "label": "Username", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Username", + "searchable": true, + "sortable": true + } + }, + "email": { + "edit": { + "label": "Email", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Email", + "searchable": true, + "sortable": true + } + }, + "password": { + "edit": { + "label": "Password", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Password", + "searchable": true, + "sortable": true + } + }, + "resetPasswordToken": { + "edit": { + "label": "ResetPasswordToken", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "ResetPasswordToken", + "searchable": true, + "sortable": true + } + }, + "registrationToken": { + "edit": { + "label": "RegistrationToken", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "RegistrationToken", + "searchable": true, + "sortable": true + } + }, + "isActive": { + "edit": { + "label": "IsActive", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "IsActive", + "searchable": true, + "sortable": true + } + }, + "roles": { + "edit": { + "label": "Roles", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "name" + }, + "list": { + "label": "Roles", + "searchable": false, + "sortable": false + } + }, + "blocked": { + "edit": { + "label": "Blocked", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Blocked", + "searchable": true, + "sortable": true + } + }, + "preferedLanguage": { + "edit": { + "label": "PreferedLanguage", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "PreferedLanguage", + "searchable": true, + "sortable": true + } + }, + "createdAt": { + "edit": { + "label": "CreatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "CreatedAt", + "searchable": true, + "sortable": true + } + }, + "updatedAt": { + "edit": { + "label": "UpdatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "UpdatedAt", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "firstname", + "lastname", + "username" + ], + "editRelations": [ + "roles" + ], + "edit": [ + [ + { + "name": "firstname", + "size": 6 + }, + { + "name": "lastname", + "size": 6 + } + ], + [ + { + "name": "username", + "size": 6 + }, + { + "name": "email", + "size": 6 + } + ], + [ + { + "name": "password", + "size": 6 + }, + { + "name": "resetPasswordToken", + "size": 6 + } + ], + [ + { + "name": "registrationToken", + "size": 6 + }, + { + "name": "isActive", + "size": 4 + } + ], + [ + { + "name": "blocked", + "size": 4 + }, + { + "name": "preferedLanguage", + "size": 6 + } + ] + ] + } + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_content_types##api##code-challenge.code-challenge.json b/config/sync/core-store.plugin_content_manager_configuration_content_types##api##code-challenge.code-challenge.json new file mode 100644 index 0000000..e8c1dd1 --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_content_types##api##code-challenge.code-challenge.json @@ -0,0 +1,205 @@ +{ + "key": "plugin_content_manager_configuration_content_types::api::code-challenge.code-challenge", + "value": { + "uid": "api::code-challenge.code-challenge", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "internalLabel", + "defaultSortBy": "internalLabel", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": true, + "sortable": true + } + }, + "startingCode": { + "edit": { + "label": "StartingCode", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "StartingCode", + "searchable": false, + "sortable": false + } + }, + "tests": { + "edit": { + "label": "Tests", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Tests", + "searchable": false, + "sortable": false + } + }, + "prompt": { + "edit": { + "label": "Prompt", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Prompt", + "searchable": false, + "sortable": false + } + }, + "internalLabel": { + "edit": { + "label": "InternalLabel", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "InternalLabel", + "searchable": true, + "sortable": true + } + }, + "internalNotes": { + "edit": { + "label": "InternalNotes", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "InternalNotes", + "searchable": true, + "sortable": true + } + }, + "hints": { + "edit": { + "label": "Hints", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Hints", + "searchable": false, + "sortable": false + } + }, + "getStartingCodeFromPreviousChallenge": { + "edit": { + "label": "GetStartingCodeFromPreviousChallenge", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "GetStartingCodeFromPreviousChallenge", + "searchable": true, + "sortable": true + } + }, + "createdAt": { + "edit": { + "label": "CreatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "CreatedAt", + "searchable": true, + "sortable": true + } + }, + "updatedAt": { + "edit": { + "label": "UpdatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "UpdatedAt", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "internalLabel", + "internalNotes", + "getStartingCodeFromPreviousChallenge" + ], + "edit": [ + [ + { + "name": "startingCode", + "size": 12 + } + ], + [ + { + "name": "tests", + "size": 12 + } + ], + [ + { + "name": "prompt", + "size": 12 + } + ], + [ + { + "name": "internalLabel", + "size": 6 + }, + { + "name": "internalNotes", + "size": 6 + } + ], + [ + { + "name": "hints", + "size": 12 + } + ], + [ + { + "name": "getStartingCodeFromPreviousChallenge", + "size": 4 + } + ] + ], + "editRelations": [] + } + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_content_types##api##course.course.json b/config/sync/core-store.plugin_content_manager_configuration_content_types##api##course.course.json new file mode 100644 index 0000000..e27d697 --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_content_types##api##course.course.json @@ -0,0 +1,122 @@ +{ + "key": "plugin_content_manager_configuration_content_types::api::course.course", + "value": { + "uid": "api::course.course", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "name", + "defaultSortBy": "name", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": true, + "sortable": true + } + }, + "name": { + "edit": { + "label": "Name", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Name", + "searchable": true, + "sortable": true + } + }, + "slug": { + "edit": { + "label": "Slug", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Slug", + "searchable": true, + "sortable": true + } + }, + "modules": { + "edit": { + "label": "Modules", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "name" + }, + "list": { + "label": "Modules", + "searchable": false, + "sortable": false + } + }, + "createdAt": { + "edit": { + "label": "CreatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "CreatedAt", + "searchable": true, + "sortable": true + } + }, + "updatedAt": { + "edit": { + "label": "UpdatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "UpdatedAt", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "name", + "slug", + "modules" + ], + "editRelations": [ + "modules" + ], + "edit": [ + [ + { + "name": "name", + "size": 6 + }, + { + "name": "slug", + "size": 6 + } + ] + ] + } + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_content_types##api##lesson.lesson.json b/config/sync/core-store.plugin_content_manager_configuration_content_types##api##lesson.lesson.json new file mode 100644 index 0000000..e97d05a --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_content_types##api##lesson.lesson.json @@ -0,0 +1,212 @@ +{ + "key": "plugin_content_manager_configuration_content_types::api::lesson.lesson", + "value": { + "uid": "api::lesson.lesson", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "slug", + "defaultSortBy": "slug", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": true, + "sortable": true + } + }, + "slug": { + "edit": { + "label": "Slug", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Slug", + "searchable": true, + "sortable": true + } + }, + "name": { + "edit": { + "label": "Name", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Name", + "searchable": true, + "sortable": true + } + }, + "isHard": { + "edit": { + "label": "IsHard", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "IsHard", + "searchable": true, + "sortable": true + } + }, + "internalNotes": { + "edit": { + "label": "InternalNotes", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "InternalNotes", + "searchable": true, + "sortable": true + } + }, + "externalResources": { + "edit": { + "label": "ExternalResources", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "ExternalResources", + "searchable": false, + "sortable": false + } + }, + "sublessons": { + "edit": { + "label": "Sublessons", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "name" + }, + "list": { + "label": "Sublessons", + "searchable": false, + "sortable": false + } + }, + "module": { + "edit": { + "label": "Module", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "name" + }, + "list": { + "label": "Module", + "searchable": true, + "sortable": true + } + }, + "syntaxEntry": { + "edit": { + "label": "SyntaxEntry", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "name" + }, + "list": { + "label": "SyntaxEntry", + "searchable": true, + "sortable": true + } + }, + "createdAt": { + "edit": { + "label": "CreatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "CreatedAt", + "searchable": true, + "sortable": true + } + }, + "updatedAt": { + "edit": { + "label": "UpdatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "UpdatedAt", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "slug", + "name", + "isHard" + ], + "editRelations": [ + "sublessons", + "module", + "syntaxEntry" + ], + "edit": [ + [ + { + "name": "slug", + "size": 6 + }, + { + "name": "name", + "size": 6 + } + ], + [ + { + "name": "isHard", + "size": 4 + }, + { + "name": "internalNotes", + "size": 6 + } + ], + [ + { + "name": "externalResources", + "size": 12 + } + ] + ] + } + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_content_types##api##module.module.json b/config/sync/core-store.plugin_content_manager_configuration_content_types##api##module.module.json new file mode 100644 index 0000000..49797ad --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_content_types##api##module.module.json @@ -0,0 +1,124 @@ +{ + "key": "plugin_content_manager_configuration_content_types::api::module.module", + "value": { + "uid": "api::module.module", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "name", + "defaultSortBy": "name", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": true, + "sortable": true + } + }, + "name": { + "edit": { + "label": "Name", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Name", + "searchable": true, + "sortable": true + } + }, + "lessons": { + "edit": { + "label": "Lessons", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "slug" + }, + "list": { + "label": "Lessons", + "searchable": false, + "sortable": false + } + }, + "moduleLessons": { + "edit": { + "label": "ModuleLessons", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "ModuleLessons", + "searchable": false, + "sortable": false + } + }, + "createdAt": { + "edit": { + "label": "CreatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "CreatedAt", + "searchable": true, + "sortable": true + } + }, + "updatedAt": { + "edit": { + "label": "UpdatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "UpdatedAt", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "name", + "lessons", + "createdAt" + ], + "editRelations": [ + "lessons" + ], + "edit": [ + [ + { + "name": "name", + "size": 6 + } + ], + [ + { + "name": "moduleLessons", + "size": 12 + } + ] + ] + } + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_content_types##api##multiple-choice-challenge.multiple-choice-challenge.json b/config/sync/core-store.plugin_content_manager_configuration_content_types##api##multiple-choice-challenge.multiple-choice-challenge.json new file mode 100644 index 0000000..41518b0 --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_content_types##api##multiple-choice-challenge.multiple-choice-challenge.json @@ -0,0 +1,144 @@ +{ + "key": "plugin_content_manager_configuration_content_types::api::multiple-choice-challenge.multiple-choice-challenge", + "value": { + "uid": "api::multiple-choice-challenge.multiple-choice-challenge", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "internalLabel", + "defaultSortBy": "internalLabel", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": true, + "sortable": true + } + }, + "options": { + "edit": { + "label": "Options", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Options", + "searchable": false, + "sortable": false + } + }, + "prompt": { + "edit": { + "label": "Prompt", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Prompt", + "searchable": false, + "sortable": false + } + }, + "internalLabel": { + "edit": { + "label": "InternalLabel", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "InternalLabel", + "searchable": true, + "sortable": true + } + }, + "canSelectMultipleOptions": { + "edit": { + "label": "CanSelectMultipleOptions", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "CanSelectMultipleOptions", + "searchable": true, + "sortable": true + } + }, + "createdAt": { + "edit": { + "label": "CreatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "CreatedAt", + "searchable": true, + "sortable": true + } + }, + "updatedAt": { + "edit": { + "label": "UpdatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "UpdatedAt", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "internalLabel", + "canSelectMultipleOptions" + ], + "edit": [ + [ + { + "name": "options", + "size": 12 + } + ], + [ + { + "name": "prompt", + "size": 12 + } + ], + [ + { + "name": "internalLabel", + "size": 6 + }, + { + "name": "canSelectMultipleOptions", + "size": 4 + } + ] + ], + "editRelations": [] + } + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_content_types##api##sublesson.sublesson.json b/config/sync/core-store.plugin_content_manager_configuration_content_types##api##sublesson.sublesson.json new file mode 100644 index 0000000..1f5a029 --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_content_types##api##sublesson.sublesson.json @@ -0,0 +1,180 @@ +{ + "key": "plugin_content_manager_configuration_content_types::api::sublesson.sublesson", + "value": { + "uid": "api::sublesson.sublesson", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "name", + "defaultSortBy": "name", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": true, + "sortable": true + } + }, + "name": { + "edit": { + "label": "Name", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Name", + "searchable": true, + "sortable": true + } + }, + "description": { + "edit": { + "label": "Description", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Description", + "searchable": false, + "sortable": false + } + }, + "internalNotes": { + "edit": { + "label": "InternalNotes", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "InternalNotes", + "searchable": true, + "sortable": true + } + }, + "lesson": { + "edit": { + "label": "Lesson", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "slug" + }, + "list": { + "label": "Lesson", + "searchable": true, + "sortable": true + } + }, + "challenges": { + "edit": { + "label": "Challenges", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Challenges", + "searchable": false, + "sortable": false + } + }, + "syntaxEntry": { + "edit": { + "label": "SyntaxEntry", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "name" + }, + "list": { + "label": "SyntaxEntry", + "searchable": true, + "sortable": true + } + }, + "createdAt": { + "edit": { + "label": "CreatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "CreatedAt", + "searchable": true, + "sortable": true + } + }, + "updatedAt": { + "edit": { + "label": "UpdatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "UpdatedAt", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "name", + "internalNotes", + "lesson" + ], + "edit": [ + [ + { + "name": "name", + "size": 6 + } + ], + [ + { + "name": "description", + "size": 12 + } + ], + [ + { + "name": "internalNotes", + "size": 6 + } + ], + [ + { + "name": "challenges", + "size": 12 + } + ] + ], + "editRelations": [ + "lesson", + "syntaxEntry" + ] + } + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_content_types##api##syntax-entry.syntax-entry.json b/config/sync/core-store.plugin_content_manager_configuration_content_types##api##syntax-entry.syntax-entry.json new file mode 100644 index 0000000..1986078 --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_content_types##api##syntax-entry.syntax-entry.json @@ -0,0 +1,178 @@ +{ + "key": "plugin_content_manager_configuration_content_types::api::syntax-entry.syntax-entry", + "value": { + "uid": "api::syntax-entry.syntax-entry", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "name", + "defaultSortBy": "name", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": true, + "sortable": true + } + }, + "content": { + "edit": { + "label": "Content", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Content", + "searchable": false, + "sortable": false + } + }, + "name": { + "edit": { + "label": "Name", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Name", + "searchable": true, + "sortable": true + } + }, + "internalNotes": { + "edit": { + "label": "InternalNotes", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "InternalNotes", + "searchable": true, + "sortable": true + } + }, + "maxWidth": { + "edit": { + "label": "MaxWidth", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "MaxWidth", + "searchable": true, + "sortable": true + } + }, + "sublesson": { + "edit": { + "label": "Sublesson", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "name" + }, + "list": { + "label": "Sublesson", + "searchable": true, + "sortable": true + } + }, + "lesson": { + "edit": { + "label": "Lesson", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "slug" + }, + "list": { + "label": "Lesson", + "searchable": true, + "sortable": true + } + }, + "createdAt": { + "edit": { + "label": "CreatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "CreatedAt", + "searchable": true, + "sortable": true + } + }, + "updatedAt": { + "edit": { + "label": "UpdatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "UpdatedAt", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "name", + "internalNotes", + "maxWidth" + ], + "editRelations": [ + "sublesson", + "lesson" + ], + "edit": [ + [ + { + "name": "content", + "size": 12 + } + ], + [ + { + "name": "name", + "size": 6 + }, + { + "name": "internalNotes", + "size": 6 + } + ], + [ + { + "name": "maxWidth", + "size": 4 + } + ] + ] + } + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_content_types##plugin##i18n.locale.json b/config/sync/core-store.plugin_content_manager_configuration_content_types##plugin##i18n.locale.json new file mode 100644 index 0000000..a242682 --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_content_types##plugin##i18n.locale.json @@ -0,0 +1,105 @@ +{ + "key": "plugin_content_manager_configuration_content_types::plugin::i18n.locale", + "value": { + "uid": "plugin::i18n.locale", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "name", + "defaultSortBy": "name", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": true, + "sortable": true + } + }, + "name": { + "edit": { + "label": "Name", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Name", + "searchable": true, + "sortable": true + } + }, + "code": { + "edit": { + "label": "Code", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Code", + "searchable": true, + "sortable": true + } + }, + "createdAt": { + "edit": { + "label": "CreatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "CreatedAt", + "searchable": true, + "sortable": true + } + }, + "updatedAt": { + "edit": { + "label": "UpdatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "UpdatedAt", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "name", + "code", + "createdAt" + ], + "editRelations": [], + "edit": [ + [ + { + "name": "name", + "size": 6 + }, + { + "name": "code", + "size": 6 + } + ] + ] + } + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_content_types##plugin##upload.file.json b/config/sync/core-store.plugin_content_manager_configuration_content_types##plugin##upload.file.json new file mode 100644 index 0000000..1981404 --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_content_types##plugin##upload.file.json @@ -0,0 +1,337 @@ +{ + "key": "plugin_content_manager_configuration_content_types::plugin::upload.file", + "value": { + "uid": "plugin::upload.file", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "name", + "defaultSortBy": "name", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": true, + "sortable": true + } + }, + "name": { + "edit": { + "label": "Name", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Name", + "searchable": true, + "sortable": true + } + }, + "alternativeText": { + "edit": { + "label": "AlternativeText", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "AlternativeText", + "searchable": true, + "sortable": true + } + }, + "caption": { + "edit": { + "label": "Caption", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Caption", + "searchable": true, + "sortable": true + } + }, + "width": { + "edit": { + "label": "Width", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Width", + "searchable": true, + "sortable": true + } + }, + "height": { + "edit": { + "label": "Height", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Height", + "searchable": true, + "sortable": true + } + }, + "formats": { + "edit": { + "label": "Formats", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Formats", + "searchable": false, + "sortable": false + } + }, + "hash": { + "edit": { + "label": "Hash", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Hash", + "searchable": true, + "sortable": true + } + }, + "ext": { + "edit": { + "label": "Ext", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Ext", + "searchable": true, + "sortable": true + } + }, + "mime": { + "edit": { + "label": "Mime", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Mime", + "searchable": true, + "sortable": true + } + }, + "size": { + "edit": { + "label": "Size", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Size", + "searchable": true, + "sortable": true + } + }, + "url": { + "edit": { + "label": "Url", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Url", + "searchable": true, + "sortable": true + } + }, + "previewUrl": { + "edit": { + "label": "PreviewUrl", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "PreviewUrl", + "searchable": true, + "sortable": true + } + }, + "provider": { + "edit": { + "label": "Provider", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Provider", + "searchable": true, + "sortable": true + } + }, + "provider_metadata": { + "edit": { + "label": "Provider_metadata", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Provider_metadata", + "searchable": false, + "sortable": false + } + }, + "createdAt": { + "edit": { + "label": "CreatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "CreatedAt", + "searchable": true, + "sortable": true + } + }, + "updatedAt": { + "edit": { + "label": "UpdatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "UpdatedAt", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "name", + "alternativeText", + "caption" + ], + "editRelations": [], + "edit": [ + [ + { + "name": "name", + "size": 6 + }, + { + "name": "alternativeText", + "size": 6 + } + ], + [ + { + "name": "caption", + "size": 6 + }, + { + "name": "width", + "size": 4 + } + ], + [ + { + "name": "height", + "size": 4 + } + ], + [ + { + "name": "formats", + "size": 12 + } + ], + [ + { + "name": "hash", + "size": 6 + }, + { + "name": "ext", + "size": 6 + } + ], + [ + { + "name": "mime", + "size": 6 + }, + { + "name": "size", + "size": 4 + } + ], + [ + { + "name": "url", + "size": 6 + }, + { + "name": "previewUrl", + "size": 6 + } + ], + [ + { + "name": "provider", + "size": 6 + } + ], + [ + { + "name": "provider_metadata", + "size": 12 + } + ] + ] + } + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_content_types##plugin##users-permissions.permission.json b/config/sync/core-store.plugin_content_manager_configuration_content_types##plugin##users-permissions.permission.json new file mode 100644 index 0000000..ed0763e --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_content_types##plugin##users-permissions.permission.json @@ -0,0 +1,104 @@ +{ + "key": "plugin_content_manager_configuration_content_types::plugin::users-permissions.permission", + "value": { + "uid": "plugin::users-permissions.permission", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "action", + "defaultSortBy": "action", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": true, + "sortable": true + } + }, + "action": { + "edit": { + "label": "Action", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Action", + "searchable": true, + "sortable": true + } + }, + "role": { + "edit": { + "label": "Role", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "name" + }, + "list": { + "label": "Role", + "searchable": true, + "sortable": true + } + }, + "createdAt": { + "edit": { + "label": "CreatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "CreatedAt", + "searchable": true, + "sortable": true + } + }, + "updatedAt": { + "edit": { + "label": "UpdatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "UpdatedAt", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "action", + "role", + "createdAt" + ], + "editRelations": [ + "role" + ], + "edit": [ + [ + { + "name": "action", + "size": 6 + } + ] + ] + } + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_content_types##plugin##users-permissions.role.json b/config/sync/core-store.plugin_content_manager_configuration_content_types##plugin##users-permissions.role.json new file mode 100644 index 0000000..c1961bb --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_content_types##plugin##users-permissions.role.json @@ -0,0 +1,158 @@ +{ + "key": "plugin_content_manager_configuration_content_types::plugin::users-permissions.role", + "value": { + "uid": "plugin::users-permissions.role", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "name", + "defaultSortBy": "name", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": true, + "sortable": true + } + }, + "name": { + "edit": { + "label": "Name", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Name", + "searchable": true, + "sortable": true + } + }, + "description": { + "edit": { + "label": "Description", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Description", + "searchable": true, + "sortable": true + } + }, + "type": { + "edit": { + "label": "Type", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Type", + "searchable": true, + "sortable": true + } + }, + "permissions": { + "edit": { + "label": "Permissions", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "action" + }, + "list": { + "label": "Permissions", + "searchable": false, + "sortable": false + } + }, + "users": { + "edit": { + "label": "Users", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "username" + }, + "list": { + "label": "Users", + "searchable": false, + "sortable": false + } + }, + "createdAt": { + "edit": { + "label": "CreatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "CreatedAt", + "searchable": true, + "sortable": true + } + }, + "updatedAt": { + "edit": { + "label": "UpdatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "UpdatedAt", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "name", + "description", + "type" + ], + "editRelations": [ + "permissions", + "users" + ], + "edit": [ + [ + { + "name": "name", + "size": 6 + }, + { + "name": "description", + "size": 6 + } + ], + [ + { + "name": "type", + "size": 6 + } + ] + ] + } + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_content_manager_configuration_content_types##plugin##users-permissions.user.json b/config/sync/core-store.plugin_content_manager_configuration_content_types##plugin##users-permissions.user.json new file mode 100644 index 0000000..75cb0eb --- /dev/null +++ b/config/sync/core-store.plugin_content_manager_configuration_content_types##plugin##users-permissions.user.json @@ -0,0 +1,222 @@ +{ + "key": "plugin_content_manager_configuration_content_types::plugin::users-permissions.user", + "value": { + "uid": "plugin::users-permissions.user", + "settings": { + "bulkable": true, + "filterable": true, + "searchable": true, + "pageSize": 10, + "mainField": "username", + "defaultSortBy": "username", + "defaultSortOrder": "ASC" + }, + "metadatas": { + "id": { + "edit": {}, + "list": { + "label": "Id", + "searchable": true, + "sortable": true + } + }, + "username": { + "edit": { + "label": "Username", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Username", + "searchable": true, + "sortable": true + } + }, + "email": { + "edit": { + "label": "Email", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Email", + "searchable": true, + "sortable": true + } + }, + "provider": { + "edit": { + "label": "Provider", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "Provider", + "searchable": true, + "sortable": true + } + }, + "password": { + "edit": { + "label": "Password", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Password", + "searchable": true, + "sortable": true + } + }, + "resetPasswordToken": { + "edit": { + "label": "ResetPasswordToken", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "ResetPasswordToken", + "searchable": true, + "sortable": true + } + }, + "confirmationToken": { + "edit": { + "label": "ConfirmationToken", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "ConfirmationToken", + "searchable": true, + "sortable": true + } + }, + "confirmed": { + "edit": { + "label": "Confirmed", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Confirmed", + "searchable": true, + "sortable": true + } + }, + "blocked": { + "edit": { + "label": "Blocked", + "description": "", + "placeholder": "", + "visible": true, + "editable": true + }, + "list": { + "label": "Blocked", + "searchable": true, + "sortable": true + } + }, + "role": { + "edit": { + "label": "Role", + "description": "", + "placeholder": "", + "visible": true, + "editable": true, + "mainField": "name" + }, + "list": { + "label": "Role", + "searchable": true, + "sortable": true + } + }, + "createdAt": { + "edit": { + "label": "CreatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "CreatedAt", + "searchable": true, + "sortable": true + } + }, + "updatedAt": { + "edit": { + "label": "UpdatedAt", + "description": "", + "placeholder": "", + "visible": false, + "editable": true + }, + "list": { + "label": "UpdatedAt", + "searchable": true, + "sortable": true + } + } + }, + "layouts": { + "list": [ + "id", + "username", + "email", + "confirmed" + ], + "editRelations": [ + "role" + ], + "edit": [ + [ + { + "name": "username", + "size": 6 + }, + { + "name": "email", + "size": 6 + } + ], + [ + { + "name": "password", + "size": 6 + }, + { + "name": "confirmed", + "size": 4 + } + ], + [ + { + "name": "blocked", + "size": 4 + } + ] + ] + } + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_i18n_default_locale.json b/config/sync/core-store.plugin_i18n_default_locale.json new file mode 100644 index 0000000..c5f5fe5 --- /dev/null +++ b/config/sync/core-store.plugin_i18n_default_locale.json @@ -0,0 +1,7 @@ +{ + "key": "plugin_i18n_default_locale", + "value": "en", + "type": "string", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_upload_settings.json b/config/sync/core-store.plugin_upload_settings.json new file mode 100644 index 0000000..3285174 --- /dev/null +++ b/config/sync/core-store.plugin_upload_settings.json @@ -0,0 +1,11 @@ +{ + "key": "plugin_upload_settings", + "value": { + "sizeOptimization": true, + "responsiveDimensions": true, + "autoOrientation": false + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_users-permissions_advanced.json b/config/sync/core-store.plugin_users-permissions_advanced.json new file mode 100644 index 0000000..74368cd --- /dev/null +++ b/config/sync/core-store.plugin_users-permissions_advanced.json @@ -0,0 +1,14 @@ +{ + "key": "plugin_users-permissions_advanced", + "value": { + "unique_email": true, + "allow_register": true, + "email_confirmation": false, + "email_reset_password": null, + "email_confirmation_redirection": null, + "default_role": "authenticated" + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.plugin_users-permissions_email.json b/config/sync/core-store.plugin_users-permissions_email.json new file mode 100644 index 0000000..a8ebbe2 --- /dev/null +++ b/config/sync/core-store.plugin_users-permissions_email.json @@ -0,0 +1,34 @@ +{ + "key": "plugin_users-permissions_email", + "value": { + "reset_password": { + "display": "Email.template.reset_password", + "icon": "sync", + "options": { + "from": { + "name": "Administration Panel", + "email": "no-reply@strapi.io" + }, + "response_email": "", + "object": "Reset password", + "message": "

We heard that you lost your password. Sorry about that!

\n\n

But don’t worry! You can use the following link to reset your password:

\n

<%= URL %>?code=<%= TOKEN %>

\n\n

Thanks.

" + } + }, + "email_confirmation": { + "display": "Email.template.email_confirmation", + "icon": "check-square", + "options": { + "from": { + "name": "Administration Panel", + "email": "no-reply@strapi.io" + }, + "response_email": "", + "object": "Account confirmation", + "message": "

Thank you for registering!

\n\n

You have to confirm your email address. Please click on the link below.

\n\n

<%= URL %>?confirmation=<%= CODE %>

\n\n

Thanks.

" + } + } + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/core-store.strapi_content_types_schema.json b/config/sync/core-store.strapi_content_types_schema.json new file mode 100644 index 0000000..a4e2a3b --- /dev/null +++ b/config/sync/core-store.strapi_content_types_schema.json @@ -0,0 +1,2224 @@ +{ + "key": "strapi_content_types_schema", + "value": { + "admin::permission": { + "collectionName": "admin_permissions", + "info": { + "name": "Permission", + "description": "", + "singularName": "permission", + "pluralName": "permissions", + "displayName": "Permission" + }, + "options": {}, + "pluginOptions": { + "content-manager": { + "visible": false + }, + "content-type-builder": { + "visible": false + } + }, + "attributes": { + "action": { + "type": "string", + "minLength": 1, + "configurable": false, + "required": true + }, + "subject": { + "type": "string", + "minLength": 1, + "configurable": false, + "required": false + }, + "properties": { + "type": "json", + "configurable": false, + "required": false, + "default": {} + }, + "conditions": { + "type": "json", + "configurable": false, + "required": false, + "default": [] + }, + "role": { + "configurable": false, + "type": "relation", + "relation": "manyToOne", + "inversedBy": "permissions", + "target": "admin::role" + }, + "createdAt": { + "type": "datetime" + }, + "updatedAt": { + "type": "datetime" + }, + "createdBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + }, + "updatedBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + } + }, + "kind": "collectionType", + "__schema__": { + "collectionName": "admin_permissions", + "info": { + "name": "Permission", + "description": "", + "singularName": "permission", + "pluralName": "permissions", + "displayName": "Permission" + }, + "options": {}, + "pluginOptions": { + "content-manager": { + "visible": false + }, + "content-type-builder": { + "visible": false + } + }, + "attributes": { + "action": { + "type": "string", + "minLength": 1, + "configurable": false, + "required": true + }, + "subject": { + "type": "string", + "minLength": 1, + "configurable": false, + "required": false + }, + "properties": { + "type": "json", + "configurable": false, + "required": false, + "default": {} + }, + "conditions": { + "type": "json", + "configurable": false, + "required": false, + "default": [] + }, + "role": { + "configurable": false, + "type": "relation", + "relation": "manyToOne", + "inversedBy": "permissions", + "target": "admin::role" + } + }, + "kind": "collectionType" + }, + "modelType": "contentType", + "modelName": "permission", + "connection": "default", + "uid": "admin::permission", + "plugin": "admin", + "globalId": "AdminPermission" + }, + "admin::user": { + "collectionName": "admin_users", + "info": { + "name": "User", + "description": "", + "singularName": "user", + "pluralName": "users", + "displayName": "User" + }, + "pluginOptions": { + "content-manager": { + "visible": false + }, + "content-type-builder": { + "visible": false + } + }, + "attributes": { + "firstname": { + "type": "string", + "unique": false, + "minLength": 1, + "configurable": false, + "required": false + }, + "lastname": { + "type": "string", + "unique": false, + "minLength": 1, + "configurable": false, + "required": false + }, + "username": { + "type": "string", + "unique": false, + "configurable": false, + "required": false + }, + "email": { + "type": "email", + "minLength": 6, + "configurable": false, + "required": true, + "unique": true, + "private": true + }, + "password": { + "type": "password", + "minLength": 6, + "configurable": false, + "required": false, + "private": true + }, + "resetPasswordToken": { + "type": "string", + "configurable": false, + "private": true + }, + "registrationToken": { + "type": "string", + "configurable": false, + "private": true + }, + "isActive": { + "type": "boolean", + "default": false, + "configurable": false, + "private": true + }, + "roles": { + "configurable": false, + "private": true, + "type": "relation", + "relation": "manyToMany", + "inversedBy": "users", + "target": "admin::role", + "collectionName": "strapi_users_roles" + }, + "blocked": { + "type": "boolean", + "default": false, + "configurable": false, + "private": true + }, + "preferedLanguage": { + "type": "string", + "configurable": false, + "required": false + }, + "createdAt": { + "type": "datetime" + }, + "updatedAt": { + "type": "datetime" + }, + "createdBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + }, + "updatedBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + } + }, + "kind": "collectionType", + "__schema__": { + "collectionName": "admin_users", + "info": { + "name": "User", + "description": "", + "singularName": "user", + "pluralName": "users", + "displayName": "User" + }, + "pluginOptions": { + "content-manager": { + "visible": false + }, + "content-type-builder": { + "visible": false + } + }, + "attributes": { + "firstname": { + "type": "string", + "unique": false, + "minLength": 1, + "configurable": false, + "required": false + }, + "lastname": { + "type": "string", + "unique": false, + "minLength": 1, + "configurable": false, + "required": false + }, + "username": { + "type": "string", + "unique": false, + "configurable": false, + "required": false + }, + "email": { + "type": "email", + "minLength": 6, + "configurable": false, + "required": true, + "unique": true, + "private": true + }, + "password": { + "type": "password", + "minLength": 6, + "configurable": false, + "required": false, + "private": true + }, + "resetPasswordToken": { + "type": "string", + "configurable": false, + "private": true + }, + "registrationToken": { + "type": "string", + "configurable": false, + "private": true + }, + "isActive": { + "type": "boolean", + "default": false, + "configurable": false, + "private": true + }, + "roles": { + "configurable": false, + "private": true, + "type": "relation", + "relation": "manyToMany", + "inversedBy": "users", + "target": "admin::role", + "collectionName": "strapi_users_roles" + }, + "blocked": { + "type": "boolean", + "default": false, + "configurable": false, + "private": true + }, + "preferedLanguage": { + "type": "string", + "configurable": false, + "required": false + } + }, + "kind": "collectionType" + }, + "modelType": "contentType", + "modelName": "user", + "connection": "default", + "uid": "admin::user", + "plugin": "admin", + "globalId": "AdminUser" + }, + "admin::role": { + "collectionName": "admin_roles", + "info": { + "name": "Role", + "description": "", + "singularName": "role", + "pluralName": "roles", + "displayName": "Role" + }, + "options": {}, + "pluginOptions": { + "content-manager": { + "visible": false + }, + "content-type-builder": { + "visible": false + } + }, + "attributes": { + "name": { + "type": "string", + "minLength": 1, + "unique": true, + "configurable": false, + "required": true + }, + "code": { + "type": "string", + "minLength": 1, + "unique": true, + "configurable": false, + "required": true + }, + "description": { + "type": "string", + "configurable": false + }, + "users": { + "configurable": false, + "type": "relation", + "relation": "manyToMany", + "mappedBy": "roles", + "target": "admin::user" + }, + "permissions": { + "configurable": false, + "type": "relation", + "relation": "oneToMany", + "mappedBy": "role", + "target": "admin::permission" + }, + "createdAt": { + "type": "datetime" + }, + "updatedAt": { + "type": "datetime" + }, + "createdBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + }, + "updatedBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + } + }, + "kind": "collectionType", + "__schema__": { + "collectionName": "admin_roles", + "info": { + "name": "Role", + "description": "", + "singularName": "role", + "pluralName": "roles", + "displayName": "Role" + }, + "options": {}, + "pluginOptions": { + "content-manager": { + "visible": false + }, + "content-type-builder": { + "visible": false + } + }, + "attributes": { + "name": { + "type": "string", + "minLength": 1, + "unique": true, + "configurable": false, + "required": true + }, + "code": { + "type": "string", + "minLength": 1, + "unique": true, + "configurable": false, + "required": true + }, + "description": { + "type": "string", + "configurable": false + }, + "users": { + "configurable": false, + "type": "relation", + "relation": "manyToMany", + "mappedBy": "roles", + "target": "admin::user" + }, + "permissions": { + "configurable": false, + "type": "relation", + "relation": "oneToMany", + "mappedBy": "role", + "target": "admin::permission" + } + }, + "kind": "collectionType" + }, + "modelType": "contentType", + "modelName": "role", + "connection": "default", + "uid": "admin::role", + "plugin": "admin", + "globalId": "AdminRole" + }, + "admin::api-token": { + "collectionName": "strapi_api_tokens", + "info": { + "name": "Api Token", + "singularName": "api-token", + "pluralName": "api-tokens", + "displayName": "Api Token", + "description": "" + }, + "options": {}, + "pluginOptions": { + "content-manager": { + "visible": false + }, + "content-type-builder": { + "visible": false + } + }, + "attributes": { + "name": { + "type": "string", + "minLength": 1, + "configurable": false, + "required": true + }, + "description": { + "type": "string", + "minLength": 1, + "configurable": false, + "required": false, + "default": "" + }, + "type": { + "type": "enumeration", + "enum": [ + "read-only", + "full-access" + ], + "configurable": false, + "required": false, + "default": "read-only" + }, + "accessKey": { + "type": "string", + "minLength": 1, + "configurable": false, + "required": true + }, + "createdAt": { + "type": "datetime" + }, + "updatedAt": { + "type": "datetime" + }, + "createdBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + }, + "updatedBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + } + }, + "kind": "collectionType", + "__schema__": { + "collectionName": "strapi_api_tokens", + "info": { + "name": "Api Token", + "singularName": "api-token", + "pluralName": "api-tokens", + "displayName": "Api Token", + "description": "" + }, + "options": {}, + "pluginOptions": { + "content-manager": { + "visible": false + }, + "content-type-builder": { + "visible": false + } + }, + "attributes": { + "name": { + "type": "string", + "minLength": 1, + "configurable": false, + "required": true + }, + "description": { + "type": "string", + "minLength": 1, + "configurable": false, + "required": false, + "default": "" + }, + "type": { + "type": "enumeration", + "enum": [ + "read-only", + "full-access" + ], + "configurable": false, + "required": false, + "default": "read-only" + }, + "accessKey": { + "type": "string", + "minLength": 1, + "configurable": false, + "required": true + } + }, + "kind": "collectionType" + }, + "modelType": "contentType", + "modelName": "api-token", + "connection": "default", + "uid": "admin::api-token", + "plugin": "admin", + "globalId": "AdminApiToken" + }, + "plugin::upload.file": { + "collectionName": "files", + "info": { + "singularName": "file", + "pluralName": "files", + "displayName": "File", + "description": "" + }, + "options": {}, + "pluginOptions": { + "content-manager": { + "visible": false + }, + "content-type-builder": { + "visible": false + } + }, + "attributes": { + "name": { + "type": "string", + "configurable": false, + "required": true + }, + "alternativeText": { + "type": "string", + "configurable": false + }, + "caption": { + "type": "string", + "configurable": false + }, + "width": { + "type": "integer", + "configurable": false + }, + "height": { + "type": "integer", + "configurable": false + }, + "formats": { + "type": "json", + "configurable": false + }, + "hash": { + "type": "string", + "configurable": false, + "required": true + }, + "ext": { + "type": "string", + "configurable": false + }, + "mime": { + "type": "string", + "configurable": false, + "required": true + }, + "size": { + "type": "decimal", + "configurable": false, + "required": true + }, + "url": { + "type": "string", + "configurable": false, + "required": true + }, + "previewUrl": { + "type": "string", + "configurable": false + }, + "provider": { + "type": "string", + "configurable": false, + "required": true + }, + "provider_metadata": { + "type": "json", + "configurable": false + }, + "related": { + "type": "relation", + "relation": "morphToMany", + "configurable": false + }, + "createdAt": { + "type": "datetime" + }, + "updatedAt": { + "type": "datetime" + }, + "createdBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + }, + "updatedBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + } + }, + "kind": "collectionType", + "__schema__": { + "collectionName": "files", + "info": { + "singularName": "file", + "pluralName": "files", + "displayName": "File", + "description": "" + }, + "options": {}, + "pluginOptions": { + "content-manager": { + "visible": false + }, + "content-type-builder": { + "visible": false + } + }, + "attributes": { + "name": { + "type": "string", + "configurable": false, + "required": true + }, + "alternativeText": { + "type": "string", + "configurable": false + }, + "caption": { + "type": "string", + "configurable": false + }, + "width": { + "type": "integer", + "configurable": false + }, + "height": { + "type": "integer", + "configurable": false + }, + "formats": { + "type": "json", + "configurable": false + }, + "hash": { + "type": "string", + "configurable": false, + "required": true + }, + "ext": { + "type": "string", + "configurable": false + }, + "mime": { + "type": "string", + "configurable": false, + "required": true + }, + "size": { + "type": "decimal", + "configurable": false, + "required": true + }, + "url": { + "type": "string", + "configurable": false, + "required": true + }, + "previewUrl": { + "type": "string", + "configurable": false + }, + "provider": { + "type": "string", + "configurable": false, + "required": true + }, + "provider_metadata": { + "type": "json", + "configurable": false + }, + "related": { + "type": "relation", + "relation": "morphToMany", + "configurable": false + } + }, + "kind": "collectionType" + }, + "modelType": "contentType", + "modelName": "file", + "connection": "default", + "uid": "plugin::upload.file", + "plugin": "upload", + "globalId": "UploadFile" + }, + "plugin::i18n.locale": { + "info": { + "singularName": "locale", + "pluralName": "locales", + "collectionName": "locales", + "displayName": "Locale", + "description": "" + }, + "options": { + "draftAndPublish": false + }, + "pluginOptions": { + "content-manager": { + "visible": false + }, + "content-type-builder": { + "visible": false + } + }, + "attributes": { + "name": { + "type": "string", + "min": 1, + "max": 50, + "configurable": false + }, + "code": { + "type": "string", + "unique": true, + "configurable": false + }, + "createdAt": { + "type": "datetime" + }, + "updatedAt": { + "type": "datetime" + }, + "createdBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + }, + "updatedBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + } + }, + "kind": "collectionType", + "__schema__": { + "info": { + "singularName": "locale", + "pluralName": "locales", + "collectionName": "locales", + "displayName": "Locale", + "description": "" + }, + "options": { + "draftAndPublish": false + }, + "pluginOptions": { + "content-manager": { + "visible": false + }, + "content-type-builder": { + "visible": false + } + }, + "attributes": { + "name": { + "type": "string", + "min": 1, + "max": 50, + "configurable": false + }, + "code": { + "type": "string", + "unique": true, + "configurable": false + } + }, + "kind": "collectionType" + }, + "modelType": "contentType", + "modelName": "locale", + "connection": "default", + "uid": "plugin::i18n.locale", + "plugin": "i18n", + "collectionName": "i18n_locale", + "globalId": "I18NLocale" + }, + "plugin::users-permissions.permission": { + "collectionName": "up_permissions", + "info": { + "name": "permission", + "description": "", + "singularName": "permission", + "pluralName": "permissions", + "displayName": "Permission" + }, + "pluginOptions": { + "content-manager": { + "visible": false + }, + "content-type-builder": { + "visible": false + } + }, + "attributes": { + "action": { + "type": "string", + "required": true, + "configurable": false + }, + "role": { + "type": "relation", + "relation": "manyToOne", + "target": "plugin::users-permissions.role", + "inversedBy": "permissions", + "configurable": false + }, + "createdAt": { + "type": "datetime" + }, + "updatedAt": { + "type": "datetime" + }, + "createdBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + }, + "updatedBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + } + }, + "kind": "collectionType", + "__schema__": { + "collectionName": "up_permissions", + "info": { + "name": "permission", + "description": "", + "singularName": "permission", + "pluralName": "permissions", + "displayName": "Permission" + }, + "pluginOptions": { + "content-manager": { + "visible": false + }, + "content-type-builder": { + "visible": false + } + }, + "attributes": { + "action": { + "type": "string", + "required": true, + "configurable": false + }, + "role": { + "type": "relation", + "relation": "manyToOne", + "target": "plugin::users-permissions.role", + "inversedBy": "permissions", + "configurable": false + } + }, + "kind": "collectionType" + }, + "modelType": "contentType", + "modelName": "permission", + "connection": "default", + "uid": "plugin::users-permissions.permission", + "plugin": "users-permissions", + "globalId": "UsersPermissionsPermission" + }, + "plugin::users-permissions.role": { + "collectionName": "up_roles", + "info": { + "name": "role", + "description": "", + "singularName": "role", + "pluralName": "roles", + "displayName": "Role" + }, + "pluginOptions": { + "content-manager": { + "visible": false + }, + "content-type-builder": { + "visible": false + } + }, + "attributes": { + "name": { + "type": "string", + "minLength": 3, + "required": true, + "configurable": false + }, + "description": { + "type": "string", + "configurable": false + }, + "type": { + "type": "string", + "unique": true, + "configurable": false + }, + "permissions": { + "type": "relation", + "relation": "oneToMany", + "target": "plugin::users-permissions.permission", + "mappedBy": "role", + "configurable": false + }, + "users": { + "type": "relation", + "relation": "oneToMany", + "target": "plugin::users-permissions.user", + "mappedBy": "role", + "configurable": false + }, + "createdAt": { + "type": "datetime" + }, + "updatedAt": { + "type": "datetime" + }, + "createdBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + }, + "updatedBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + } + }, + "kind": "collectionType", + "__schema__": { + "collectionName": "up_roles", + "info": { + "name": "role", + "description": "", + "singularName": "role", + "pluralName": "roles", + "displayName": "Role" + }, + "pluginOptions": { + "content-manager": { + "visible": false + }, + "content-type-builder": { + "visible": false + } + }, + "attributes": { + "name": { + "type": "string", + "minLength": 3, + "required": true, + "configurable": false + }, + "description": { + "type": "string", + "configurable": false + }, + "type": { + "type": "string", + "unique": true, + "configurable": false + }, + "permissions": { + "type": "relation", + "relation": "oneToMany", + "target": "plugin::users-permissions.permission", + "mappedBy": "role", + "configurable": false + }, + "users": { + "type": "relation", + "relation": "oneToMany", + "target": "plugin::users-permissions.user", + "mappedBy": "role", + "configurable": false + } + }, + "kind": "collectionType" + }, + "modelType": "contentType", + "modelName": "role", + "connection": "default", + "uid": "plugin::users-permissions.role", + "plugin": "users-permissions", + "globalId": "UsersPermissionsRole" + }, + "plugin::users-permissions.user": { + "collectionName": "up_users", + "info": { + "name": "user", + "description": "", + "singularName": "user", + "pluralName": "users", + "displayName": "User" + }, + "options": { + "draftAndPublish": false, + "timestamps": true + }, + "attributes": { + "username": { + "type": "string", + "minLength": 3, + "unique": true, + "configurable": false, + "required": true + }, + "email": { + "type": "email", + "minLength": 6, + "configurable": false, + "required": true + }, + "provider": { + "type": "string", + "configurable": false + }, + "password": { + "type": "password", + "minLength": 6, + "configurable": false, + "private": true + }, + "resetPasswordToken": { + "type": "string", + "configurable": false, + "private": true + }, + "confirmationToken": { + "type": "string", + "configurable": false, + "private": true + }, + "confirmed": { + "type": "boolean", + "default": false, + "configurable": false + }, + "blocked": { + "type": "boolean", + "default": false, + "configurable": false + }, + "role": { + "type": "relation", + "relation": "manyToOne", + "target": "plugin::users-permissions.role", + "inversedBy": "users", + "configurable": false + }, + "createdAt": { + "type": "datetime" + }, + "updatedAt": { + "type": "datetime" + }, + "createdBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + }, + "updatedBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + } + }, + "config": { + "attributes": { + "resetPasswordToken": { + "hidden": true + }, + "confirmationToken": { + "hidden": true + }, + "provider": { + "hidden": true + } + } + }, + "kind": "collectionType", + "__schema__": { + "collectionName": "up_users", + "info": { + "name": "user", + "description": "", + "singularName": "user", + "pluralName": "users", + "displayName": "User" + }, + "options": { + "draftAndPublish": false, + "timestamps": true + }, + "attributes": { + "username": { + "type": "string", + "minLength": 3, + "unique": true, + "configurable": false, + "required": true + }, + "email": { + "type": "email", + "minLength": 6, + "configurable": false, + "required": true + }, + "provider": { + "type": "string", + "configurable": false + }, + "password": { + "type": "password", + "minLength": 6, + "configurable": false, + "private": true + }, + "resetPasswordToken": { + "type": "string", + "configurable": false, + "private": true + }, + "confirmationToken": { + "type": "string", + "configurable": false, + "private": true + }, + "confirmed": { + "type": "boolean", + "default": false, + "configurable": false + }, + "blocked": { + "type": "boolean", + "default": false, + "configurable": false + }, + "role": { + "type": "relation", + "relation": "manyToOne", + "target": "plugin::users-permissions.role", + "inversedBy": "users", + "configurable": false + } + }, + "kind": "collectionType" + }, + "modelType": "contentType", + "modelName": "user", + "connection": "default", + "uid": "plugin::users-permissions.user", + "plugin": "users-permissions", + "globalId": "UsersPermissionsUser" + }, + "api::code-challenge.code-challenge": { + "kind": "collectionType", + "collectionName": "code_challenges", + "info": { + "singularName": "code-challenge", + "pluralName": "code-challenges", + "displayName": "CodeChallenge", + "description": "" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "startingCode": { + "pluginOptions": {}, + "type": "richtext" + }, + "tests": { + "displayName": "CodeChallengeTest", + "type": "component", + "repeatable": true, + "pluginOptions": {}, + "component": "challenge.code-challenge-test" + }, + "prompt": { + "pluginOptions": {}, + "type": "richtext", + "required": true + }, + "internalLabel": { + "pluginOptions": {}, + "type": "string", + "required": true, + "private": true + }, + "internalNotes": { + "pluginOptions": {}, + "type": "text", + "private": true + }, + "hints": { + "displayName": "ChallengeHints", + "type": "component", + "repeatable": true, + "pluginOptions": {}, + "component": "challenge.challenge-hints" + }, + "getStartingCodeFromPreviousChallenge": { + "pluginOptions": {}, + "type": "boolean", + "default": false + }, + "createdAt": { + "type": "datetime" + }, + "updatedAt": { + "type": "datetime" + }, + "publishedAt": { + "type": "datetime", + "configurable": false, + "writable": true, + "visible": false + }, + "createdBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + }, + "updatedBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + } + }, + "__schema__": { + "collectionName": "code_challenges", + "info": { + "singularName": "code-challenge", + "pluralName": "code-challenges", + "displayName": "CodeChallenge", + "description": "" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "startingCode": { + "pluginOptions": {}, + "type": "richtext" + }, + "tests": { + "displayName": "CodeChallengeTest", + "type": "component", + "repeatable": true, + "pluginOptions": {}, + "component": "challenge.code-challenge-test" + }, + "prompt": { + "pluginOptions": {}, + "type": "richtext", + "required": true + }, + "internalLabel": { + "pluginOptions": {}, + "type": "string", + "required": true, + "private": true + }, + "internalNotes": { + "pluginOptions": {}, + "type": "text", + "private": true + }, + "hints": { + "displayName": "ChallengeHints", + "type": "component", + "repeatable": true, + "pluginOptions": {}, + "component": "challenge.challenge-hints" + }, + "getStartingCodeFromPreviousChallenge": { + "pluginOptions": {}, + "type": "boolean", + "default": false + } + }, + "kind": "collectionType" + }, + "modelType": "contentType", + "modelName": "code-challenge", + "connection": "default", + "uid": "api::code-challenge.code-challenge", + "apiName": "code-challenge", + "globalId": "CodeChallenge", + "actions": {}, + "lifecycles": {} + }, + "api::course.course": { + "kind": "collectionType", + "collectionName": "courses", + "info": { + "singularName": "course", + "pluralName": "courses", + "displayName": "Course", + "description": "" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "name": { + "type": "string", + "required": true + }, + "slug": { + "type": "string", + "required": true, + "unique": true + }, + "modules": { + "type": "relation", + "relation": "oneToMany", + "target": "api::module.module" + }, + "createdAt": { + "type": "datetime" + }, + "updatedAt": { + "type": "datetime" + }, + "publishedAt": { + "type": "datetime", + "configurable": false, + "writable": true, + "visible": false + }, + "createdBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + }, + "updatedBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + } + }, + "__schema__": { + "collectionName": "courses", + "info": { + "singularName": "course", + "pluralName": "courses", + "displayName": "Course", + "description": "" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "name": { + "type": "string", + "required": true + }, + "slug": { + "type": "string", + "required": true, + "unique": true + }, + "modules": { + "type": "relation", + "relation": "oneToMany", + "target": "api::module.module" + } + }, + "kind": "collectionType" + }, + "modelType": "contentType", + "modelName": "course", + "connection": "default", + "uid": "api::course.course", + "apiName": "course", + "globalId": "Course", + "actions": {}, + "lifecycles": {} + }, + "api::lesson.lesson": { + "kind": "collectionType", + "collectionName": "lessons", + "info": { + "singularName": "lesson", + "pluralName": "lessons", + "displayName": "Lesson", + "description": "" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "slug": { + "type": "string", + "required": true, + "unique": true + }, + "name": { + "type": "string", + "required": true, + "unique": true + }, + "isHard": { + "type": "boolean", + "default": false + }, + "internalNotes": { + "type": "text" + }, + "externalResources": { + "displayName": "ExternalResource", + "type": "component", + "repeatable": true, + "component": "content.external-resource" + }, + "sublessons": { + "type": "relation", + "relation": "oneToMany", + "target": "api::sublesson.sublesson", + "mappedBy": "lesson" + }, + "module": { + "type": "relation", + "relation": "manyToOne", + "target": "api::module.module", + "inversedBy": "lessons" + }, + "syntaxEntry": { + "type": "relation", + "relation": "oneToOne", + "target": "api::syntax-entry.syntax-entry", + "inversedBy": "lesson" + }, + "createdAt": { + "type": "datetime" + }, + "updatedAt": { + "type": "datetime" + }, + "publishedAt": { + "type": "datetime", + "configurable": false, + "writable": true, + "visible": false + }, + "createdBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + }, + "updatedBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + } + }, + "__schema__": { + "collectionName": "lessons", + "info": { + "singularName": "lesson", + "pluralName": "lessons", + "displayName": "Lesson", + "description": "" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "slug": { + "type": "string", + "required": true, + "unique": true + }, + "name": { + "type": "string", + "required": true, + "unique": true + }, + "isHard": { + "type": "boolean", + "default": false + }, + "internalNotes": { + "type": "text" + }, + "externalResources": { + "displayName": "ExternalResource", + "type": "component", + "repeatable": true, + "component": "content.external-resource" + }, + "sublessons": { + "type": "relation", + "relation": "oneToMany", + "target": "api::sublesson.sublesson", + "mappedBy": "lesson" + }, + "module": { + "type": "relation", + "relation": "manyToOne", + "target": "api::module.module", + "inversedBy": "lessons" + }, + "syntaxEntry": { + "type": "relation", + "relation": "oneToOne", + "target": "api::syntax-entry.syntax-entry", + "inversedBy": "lesson" + } + }, + "kind": "collectionType" + }, + "modelType": "contentType", + "modelName": "lesson", + "connection": "default", + "uid": "api::lesson.lesson", + "apiName": "lesson", + "globalId": "Lesson", + "actions": {}, + "lifecycles": {} + }, + "api::module.module": { + "kind": "collectionType", + "collectionName": "modules", + "info": { + "singularName": "module", + "pluralName": "modules", + "displayName": "Module", + "description": "" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "name": { + "type": "string", + "required": true + }, + "lessons": { + "type": "relation", + "relation": "oneToMany", + "target": "api::lesson.lesson", + "mappedBy": "module" + }, + "moduleLessons": { + "displayName": "ModuleLesson", + "type": "component", + "repeatable": true, + "component": "misc.module-lesson" + }, + "createdAt": { + "type": "datetime" + }, + "updatedAt": { + "type": "datetime" + }, + "publishedAt": { + "type": "datetime", + "configurable": false, + "writable": true, + "visible": false + }, + "createdBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + }, + "updatedBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + } + }, + "__schema__": { + "collectionName": "modules", + "info": { + "singularName": "module", + "pluralName": "modules", + "displayName": "Module", + "description": "" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "name": { + "type": "string", + "required": true + }, + "lessons": { + "type": "relation", + "relation": "oneToMany", + "target": "api::lesson.lesson", + "mappedBy": "module" + }, + "moduleLessons": { + "displayName": "ModuleLesson", + "type": "component", + "repeatable": true, + "component": "misc.module-lesson" + } + }, + "kind": "collectionType" + }, + "modelType": "contentType", + "modelName": "module", + "connection": "default", + "uid": "api::module.module", + "apiName": "module", + "globalId": "Module", + "actions": {}, + "lifecycles": {} + }, + "api::multiple-choice-challenge.multiple-choice-challenge": { + "kind": "collectionType", + "collectionName": "multiple_choice_challenges", + "info": { + "singularName": "multiple-choice-challenge", + "pluralName": "multiple-choice-challenges", + "displayName": "MultipleChoiceChallenge" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "options": { + "displayName": "MultipleChoiceOptions", + "type": "component", + "repeatable": true, + "component": "challenge.multiple-choice-options" + }, + "prompt": { + "type": "richtext", + "required": true + }, + "internalLabel": { + "type": "string", + "required": true + }, + "canSelectMultipleOptions": { + "type": "boolean", + "default": false + }, + "createdAt": { + "type": "datetime" + }, + "updatedAt": { + "type": "datetime" + }, + "publishedAt": { + "type": "datetime", + "configurable": false, + "writable": true, + "visible": false + }, + "createdBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + }, + "updatedBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + } + }, + "__schema__": { + "collectionName": "multiple_choice_challenges", + "info": { + "singularName": "multiple-choice-challenge", + "pluralName": "multiple-choice-challenges", + "displayName": "MultipleChoiceChallenge" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "options": { + "displayName": "MultipleChoiceOptions", + "type": "component", + "repeatable": true, + "component": "challenge.multiple-choice-options" + }, + "prompt": { + "type": "richtext", + "required": true + }, + "internalLabel": { + "type": "string", + "required": true + }, + "canSelectMultipleOptions": { + "type": "boolean", + "default": false + } + }, + "kind": "collectionType" + }, + "modelType": "contentType", + "modelName": "multiple-choice-challenge", + "connection": "default", + "uid": "api::multiple-choice-challenge.multiple-choice-challenge", + "apiName": "multiple-choice-challenge", + "globalId": "MultipleChoiceChallenge", + "actions": {}, + "lifecycles": {} + }, + "api::sublesson.sublesson": { + "kind": "collectionType", + "collectionName": "sublessons", + "info": { + "singularName": "sublesson", + "pluralName": "sublessons", + "displayName": "Sublesson", + "description": "" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "name": { + "type": "string", + "required": true + }, + "description": { + "type": "richtext", + "required": true + }, + "internalNotes": { + "type": "text", + "private": true + }, + "lesson": { + "type": "relation", + "relation": "manyToOne", + "target": "api::lesson.lesson", + "inversedBy": "sublessons" + }, + "challenges": { + "displayName": "Challenges", + "type": "component", + "repeatable": true, + "component": "content.challenges" + }, + "syntaxEntry": { + "type": "relation", + "relation": "oneToOne", + "target": "api::syntax-entry.syntax-entry", + "inversedBy": "sublesson" + }, + "createdAt": { + "type": "datetime" + }, + "updatedAt": { + "type": "datetime" + }, + "publishedAt": { + "type": "datetime", + "configurable": false, + "writable": true, + "visible": false + }, + "createdBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + }, + "updatedBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + } + }, + "__schema__": { + "collectionName": "sublessons", + "info": { + "singularName": "sublesson", + "pluralName": "sublessons", + "displayName": "Sublesson", + "description": "" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "name": { + "type": "string", + "required": true + }, + "description": { + "type": "richtext", + "required": true + }, + "internalNotes": { + "type": "text", + "private": true + }, + "lesson": { + "type": "relation", + "relation": "manyToOne", + "target": "api::lesson.lesson", + "inversedBy": "sublessons" + }, + "challenges": { + "displayName": "Challenges", + "type": "component", + "repeatable": true, + "component": "content.challenges" + }, + "syntaxEntry": { + "type": "relation", + "relation": "oneToOne", + "target": "api::syntax-entry.syntax-entry", + "inversedBy": "sublesson" + } + }, + "kind": "collectionType" + }, + "modelType": "contentType", + "modelName": "sublesson", + "connection": "default", + "uid": "api::sublesson.sublesson", + "apiName": "sublesson", + "globalId": "Sublesson", + "actions": {}, + "lifecycles": {} + }, + "api::syntax-entry.syntax-entry": { + "kind": "collectionType", + "collectionName": "syntax_entries", + "info": { + "singularName": "syntax-entry", + "pluralName": "syntax-entries", + "displayName": "SyntaxEntry" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "content": { + "type": "richtext", + "required": true + }, + "name": { + "type": "string", + "required": true + }, + "internalNotes": { + "type": "text" + }, + "maxWidth": { + "type": "integer", + "default": 450 + }, + "sublesson": { + "type": "relation", + "relation": "oneToOne", + "target": "api::sublesson.sublesson", + "inversedBy": "syntaxEntry" + }, + "lesson": { + "type": "relation", + "relation": "oneToOne", + "target": "api::lesson.lesson", + "inversedBy": "syntaxEntry" + }, + "createdAt": { + "type": "datetime" + }, + "updatedAt": { + "type": "datetime" + }, + "publishedAt": { + "type": "datetime", + "configurable": false, + "writable": true, + "visible": false + }, + "createdBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + }, + "updatedBy": { + "type": "relation", + "relation": "oneToOne", + "target": "admin::user", + "configurable": false, + "writable": false, + "visible": false, + "useJoinTable": false, + "private": true + } + }, + "__schema__": { + "collectionName": "syntax_entries", + "info": { + "singularName": "syntax-entry", + "pluralName": "syntax-entries", + "displayName": "SyntaxEntry" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "content": { + "type": "richtext", + "required": true + }, + "name": { + "type": "string", + "required": true + }, + "internalNotes": { + "type": "text" + }, + "maxWidth": { + "type": "integer", + "default": 450 + }, + "sublesson": { + "type": "relation", + "relation": "oneToOne", + "target": "api::sublesson.sublesson", + "inversedBy": "syntaxEntry" + }, + "lesson": { + "type": "relation", + "relation": "oneToOne", + "target": "api::lesson.lesson", + "inversedBy": "syntaxEntry" + } + }, + "kind": "collectionType" + }, + "modelType": "contentType", + "modelName": "syntax-entry", + "connection": "default", + "uid": "api::syntax-entry.syntax-entry", + "apiName": "syntax-entry", + "globalId": "SyntaxEntry", + "actions": {}, + "lifecycles": {} + } + }, + "type": "object", + "environment": null, + "tag": null +} \ No newline at end of file diff --git a/config/sync/i18n-locale.en.json b/config/sync/i18n-locale.en.json new file mode 100644 index 0000000..674d0c8 --- /dev/null +++ b/config/sync/i18n-locale.en.json @@ -0,0 +1,4 @@ +{ + "name": "English (en)", + "code": "en" +} \ No newline at end of file diff --git a/config/sync/user-role.authenticated.json b/config/sync/user-role.authenticated.json new file mode 100644 index 0000000..dbe0a1b --- /dev/null +++ b/config/sync/user-role.authenticated.json @@ -0,0 +1,13 @@ +{ + "name": "Authenticated", + "description": "Default role given to authenticated user.", + "type": "authenticated", + "permissions": [ + { + "action": "plugin::users-permissions.auth.connect" + }, + { + "action": "plugin::users-permissions.user.me" + } + ] +} \ No newline at end of file diff --git a/config/sync/user-role.public.json b/config/sync/user-role.public.json new file mode 100644 index 0000000..7dd7103 --- /dev/null +++ b/config/sync/user-role.public.json @@ -0,0 +1,190 @@ +{ + "name": "Public", + "description": "Default role given to unauthenticated user.", + "type": "public", + "permissions": [ + { + "action": "api::course.course.create" + }, + { + "action": "api::course.course.delete" + }, + { + "action": "api::course.course.find" + }, + { + "action": "api::course.course.findOne" + }, + { + "action": "api::course.course.update" + }, + { + "action": "api::lesson.lesson.create" + }, + { + "action": "api::lesson.lesson.delete" + }, + { + "action": "api::lesson.lesson.find" + }, + { + "action": "api::lesson.lesson.findOne" + }, + { + "action": "api::lesson.lesson.update" + }, + { + "action": "api::module.module.create" + }, + { + "action": "api::module.module.delete" + }, + { + "action": "api::module.module.find" + }, + { + "action": "api::module.module.findOne" + }, + { + "action": "api::module.module.update" + }, + { + "action": "api::multiple-choice-challenge.multiple-choice-challenge.create" + }, + { + "action": "api::multiple-choice-challenge.multiple-choice-challenge.delete" + }, + { + "action": "api::multiple-choice-challenge.multiple-choice-challenge.find" + }, + { + "action": "api::multiple-choice-challenge.multiple-choice-challenge.findOne" + }, + { + "action": "api::multiple-choice-challenge.multiple-choice-challenge.update" + }, + { + "action": "api::sublesson.sublesson.create" + }, + { + "action": "api::sublesson.sublesson.delete" + }, + { + "action": "api::sublesson.sublesson.find" + }, + { + "action": "api::sublesson.sublesson.findOne" + }, + { + "action": "api::sublesson.sublesson.update" + }, + { + "action": "api::syntax-entry.syntax-entry.create" + }, + { + "action": "api::syntax-entry.syntax-entry.delete" + }, + { + "action": "api::syntax-entry.syntax-entry.find" + }, + { + "action": "api::syntax-entry.syntax-entry.findOne" + }, + { + "action": "api::syntax-entry.syntax-entry.update" + }, + { + "action": "plugin::content-type-builder.components.getComponent" + }, + { + "action": "plugin::content-type-builder.components.getComponents" + }, + { + "action": "plugin::content-type-builder.content-types.getContentType" + }, + { + "action": "plugin::content-type-builder.content-types.getContentTypes" + }, + { + "action": "plugin::email.email.send" + }, + { + "action": "plugin::i18n.locales.listLocales" + }, + { + "action": "plugin::upload.content-api.count" + }, + { + "action": "plugin::upload.content-api.destroy" + }, + { + "action": "plugin::upload.content-api.find" + }, + { + "action": "plugin::upload.content-api.findOne" + }, + { + "action": "plugin::upload.content-api.upload" + }, + { + "action": "plugin::users-permissions.auth.callback" + }, + { + "action": "plugin::users-permissions.auth.connect" + }, + { + "action": "plugin::users-permissions.auth.emailConfirmation" + }, + { + "action": "plugin::users-permissions.auth.forgotPassword" + }, + { + "action": "plugin::users-permissions.auth.register" + }, + { + "action": "plugin::users-permissions.auth.resetPassword" + }, + { + "action": "plugin::users-permissions.auth.sendEmailConfirmation" + }, + { + "action": "plugin::users-permissions.permissions.getPermissions" + }, + { + "action": "plugin::users-permissions.role.createRole" + }, + { + "action": "plugin::users-permissions.role.deleteRole" + }, + { + "action": "plugin::users-permissions.role.getRole" + }, + { + "action": "plugin::users-permissions.role.getRoles" + }, + { + "action": "plugin::users-permissions.role.updateRole" + }, + { + "action": "plugin::users-permissions.user.count" + }, + { + "action": "plugin::users-permissions.user.create" + }, + { + "action": "plugin::users-permissions.user.destroy" + }, + { + "action": "plugin::users-permissions.user.find" + }, + { + "action": "plugin::users-permissions.user.findOne" + }, + { + "action": "plugin::users-permissions.user.me" + }, + { + "action": "plugin::users-permissions.user.update" + } + ] +} \ No newline at end of file