|
25 | 25 | "type": "integer",
|
26 | 26 | "description": "Maximum size (number of players) in a team."
|
27 | 27 | },
|
| 28 | + "password_min_length": { |
| 29 | + "type": "integer", |
| 30 | + "description": "Minimal length of passwords." |
| 31 | + }, |
28 | 32 | "num_teams": {
|
29 | 33 | "type": "integer",
|
30 | 34 | "description": "The total number of teams allowed."
|
|
37 | 41 | "type": "string",
|
38 | 42 | "description": "Whether to allow teams to be disbanded or not. Could be inactive_only or disabled."
|
39 | 43 | },
|
40 |
| - "incorrect_submissions_per_minutes": { |
| 44 | + "incorrect_submissions_per_minute": { |
41 | 45 | "type": "integer",
|
42 | 46 | "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)."
|
43 | 47 | },
|
|
90 | 94 | "required": ["name", "description"],
|
91 | 95 | "description": "Appearance of the CTFd."
|
92 | 96 | },
|
| 97 | + "Challenges": { |
| 98 | + "properties": { |
| 99 | + "view_self_submissions": { |
| 100 | + "type": "boolean", |
| 101 | + "description": "Whether a player can see itw own previous submissions." |
| 102 | + }, |
| 103 | + "max_attempts_behavior": { |
| 104 | + "type": "string", |
| 105 | + "enum": ["lockout", "timeout"], |
| 106 | + "description": "The behavior to adopt in case a player reached the submission rate limiting.", |
| 107 | + "default": "lockout" |
| 108 | + }, |
| 109 | + "max_attempts_timeout": { |
| 110 | + "type": "integer", |
| 111 | + "description": "The duration of the submission rate limit for further submissions." |
| 112 | + }, |
| 113 | + "hints_free_public_access": { |
| 114 | + "type": "boolean", |
| 115 | + "description": "Control whether users must be logged in to see free hints." |
| 116 | + }, |
| 117 | + "challenge_ratings": { |
| 118 | + "type": "string", |
| 119 | + "enum": ["public", "private", "disabled"], |
| 120 | + "description": "Who can see and submit challenge ratings.", |
| 121 | + "default": "public" |
| 122 | + } |
| 123 | + }, |
| 124 | + "additionalProperties": false, |
| 125 | + "type": "object", |
| 126 | + "required": [ |
| 127 | + "view_self_submissions", |
| 128 | + "max_attempts_behavior", |
| 129 | + "max_attempts_timeout", |
| 130 | + "hints_free_public_access", |
| 131 | + "challenge_ratings" |
| 132 | + ], |
| 133 | + "description": "Challenge-related configurations." |
| 134 | + }, |
93 | 135 | "Config": {
|
94 | 136 | "properties": {
|
95 | 137 | "appearance": {
|
|
101 | 143 | "accounts": {
|
102 | 144 | "$ref": "#/$defs/Accounts"
|
103 | 145 | },
|
| 146 | + "challenges": { |
| 147 | + "$ref": "#/$defs/Challenges" |
| 148 | + }, |
104 | 149 | "pages": {
|
105 | 150 | "$ref": "#/$defs/Pages"
|
106 | 151 | },
|
|
133 | 178 | "enum": ["users", "teams"],
|
134 | 179 | "description": "The mode of your CTFd, either users or teams.",
|
135 | 180 | "default": "users"
|
| 181 | + }, |
| 182 | + "uploads": { |
| 183 | + "items": { |
| 184 | + "$ref": "#/$defs/Upload" |
| 185 | + }, |
| 186 | + "type": "array" |
136 | 187 | }
|
137 | 188 | },
|
138 | 189 | "additionalProperties": false,
|
|
397 | 448 | "shares": {
|
398 | 449 | "type": "boolean",
|
399 | 450 | "description": "Whether to enable users share they solved a challenge or not."
|
| 451 | + }, |
| 452 | + "template": { |
| 453 | + "$ref": "#/$defs/File", |
| 454 | + "description": "A template for social shares." |
400 | 455 | }
|
401 | 456 | },
|
402 | 457 | "additionalProperties": false,
|
|
461 | 516 | "additionalProperties": false,
|
462 | 517 | "type": "object",
|
463 | 518 | "description": "Time settings of the CTF."
|
| 519 | + }, |
| 520 | + "Upload": { |
| 521 | + "properties": { |
| 522 | + "file": { |
| 523 | + "$ref": "#/$defs/File" |
| 524 | + }, |
| 525 | + "location": { |
| 526 | + "type": "string", |
| 527 | + "description": "Where to upload it.\nThis enables to use a file at a static location in, e.g., custom pages." |
| 528 | + } |
| 529 | + }, |
| 530 | + "additionalProperties": false, |
| 531 | + "type": "object", |
| 532 | + "required": ["file", "location"], |
| 533 | + "description": "Upload defines a file or content to upload as per the setup." |
464 | 534 | }
|
465 | 535 | }
|
466 | 536 | }
|
0 commit comments