rctf
— rCTF
This backend deploys challenges to rCTF. The options url
and token
specify the URL of the rCTF instance and the token of the admin account to use,
respectively. Both of these will be set from the environment variables
RCDS_RCTF_URL
and RCDS_RCTF_TOKEN
respectively, if they exist.
Challenges with a value
set are assumed to be statically-scored; all other
challenges are dynamically-scored according to the global scoring
config
(between scoring.minPoints
and scoring.maxPoints
). rCTF does not support
regex flags.
The sortOrder
option allows you to automatically set the sortWeight
fields on challenges based on an ordering provided in this key. Listed
challenges are assigned a sortWeight
equal to its index in the array
multiplied by -1. This means that if all the challenges have the same score and
solve count, they will be displayed with the first element of the array at the
top.
Additional Challenge Properties
author
and category
are required.
tiebreakEligible
(bool): whether or not this challenge factors into time-based
tiebreakers. Defaults to true
.
sortWeight
(number): rCTF sort weight parameter. Ignored if the challenge is
listed in the global sortOrder
option. Defaults to 0
.
Options Reference
type |
object |
||
default |
|||
properties |
|||
|
type |
string |
|
|
type |
string |
|
|
type |
object |
|
default |
|||
properties |
|||
|
Minimum points for dynamically-scored challenges |
||
type |
integer |
||
default |
100 |
||
|
Maximum points for dynamically-scored challenges |
||
type |
integer |
||
default |
500 |
||
|
List of challenge IDs - their sortWeights will be set in this order |
||
type |
array |
||
items |
type |
string |
Raw schema:
$schema: http://json-schema.org/draft-07/schema#
$id: http://rcds.redpwn.com/schemas/backends/rctf/options.yaml
type: object
properties:
url:
type: string
token:
type: string
scoring:
type: object
properties:
minPoints:
type: integer
description: >-
Minimum points for dynamically-scored challenges
default: 100
maxPoints:
type: integer
description: >-
Maximum points for dynamically-scored challenges
default: 500
required: ['minPoints', 'maxPoints']
default: {}
sortOrder:
type: array
description: >-
List of challenge IDs - their sortWeights will be set in this order
items:
type: string
required: ['url', 'token', 'scoring']
default: {}