Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 71 additions & 1 deletion src/schemas/json/ctfd.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@
"type": "integer",
"description": "Maximum size (number of players) in a team."
},
"password_min_length": {
"type": "integer",
"description": "Minimal length of passwords."
},
"num_teams": {
"type": "integer",
"description": "The total number of teams allowed."
Expand All @@ -37,7 +41,7 @@
"type": "string",
"description": "Whether to allow teams to be disbanded or not. Could be inactive_only or disabled."
},
"incorrect_submissions_per_minutes": {
"incorrect_submissions_per_minute": {
"type": "integer",
"description": "Maximum number of invalid submissions per minute (per user/team). We suggest you use it as part of an anti-brute-force strategy (rate limiting)."
},
Expand Down Expand Up @@ -90,6 +94,44 @@
"required": ["name", "description"],
"description": "Appearance of the CTFd."
},
"Challenges": {
"properties": {
"view_self_submissions": {
"type": "boolean",
"description": "Whether a player can see itw own previous submissions."
},
"max_attempts_behavior": {
"type": "string",
"enum": ["lockout", "timeout"],
"description": "The behavior to adopt in case a player reached the submission rate limiting.",
"default": "lockout"
},
"max_attempts_timeout": {
"type": "integer",
"description": "The duration of the submission rate limit for further submissions."
},
"hints_free_public_access": {
"type": "boolean",
"description": "Control whether users must be logged in to see free hints."
},
"challenge_ratings": {
"type": "string",
"enum": ["public", "private", "disabled"],
"description": "Who can see and submit challenge ratings.",
"default": "public"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"view_self_submissions",
"max_attempts_behavior",
"max_attempts_timeout",
"hints_free_public_access",
"challenge_ratings"
],
"description": "Challenge-related configurations."
},
"Config": {
"properties": {
"appearance": {
Expand All @@ -101,6 +143,9 @@
"accounts": {
"$ref": "#/$defs/Accounts"
},
"challenges": {
"$ref": "#/$defs/Challenges"
},
"pages": {
"$ref": "#/$defs/Pages"
},
Expand Down Expand Up @@ -133,6 +178,12 @@
"enum": ["users", "teams"],
"description": "The mode of your CTFd, either users or teams.",
"default": "users"
},
"uploads": {
"items": {
"$ref": "#/$defs/Upload"
},
"type": "array"
}
},
"additionalProperties": false,
Expand Down Expand Up @@ -397,6 +448,10 @@
"shares": {
"type": "boolean",
"description": "Whether to enable users share they solved a challenge or not."
},
"template": {
"$ref": "#/$defs/File",
"description": "A template for social shares."
}
},
"additionalProperties": false,
Expand Down Expand Up @@ -461,6 +516,21 @@
"additionalProperties": false,
"type": "object",
"description": "Time settings of the CTF."
},
"Upload": {
"properties": {
"file": {
"$ref": "#/$defs/File"
},
"location": {
"type": "string",
"description": "Where to upload it.\nThis enables to use a file at a static location in, e.g., custom pages."
}
},
"additionalProperties": false,
"type": "object",
"required": ["file", "location"],
"description": "Upload defines a file or content to upload as per the setup."
}
}
}