Skip to main content

Time

Evaluate connections or messages based on a cron schedule. All times are in UTC.

Type: connect, message

Variants:

ActionTypeID
allowconnectcom.synadia.protect.builtins.v1.allow.time.connect
allowmessagecom.synadia.protect.builtins.v1.allow.time.message
denyconnectcom.synadia.protect.builtins.v1.deny.time.connect
denymessagecom.synadia.protect.builtins.v1.deny.time.message

Cron format​

minute hour day month weekday

  • Ranges: 9-17 (9am to 5pm)
  • Lists: 1,3,5 (Monday, Wednesday, Friday)
  • Wildcards: * (any value)
  • Steps: */15 (every 15 minutes)

Connect configuration​

A list of cron expressions:

activations:
com.synadia.protect.builtins.v1.allow.time.connect: true

configurations:
com.synadia.protect.builtins.v1.allow.time.connect:
- '* 9-17 * * 1-5' # 9am-5pm UTC, Monday-Friday
- '* 10-14 * * 0,6' # 10am-2pm UTC, weekends

Message configuration​

A list of schedule/subject pairs. The subject pattern scopes which messages the schedule applies to:

activations:
com.synadia.protect.builtins.v1.allow.time.message: true

configurations:
com.synadia.protect.builtins.v1.allow.time.message:
- schedule: '* 9-17 * * 1-5'
subject: 'orders.>'
- schedule: '* 10-14 * * 0,6'
subject: 'weekend.>'
- schedule: '* * * * *' # anytime, all subjects
subject: '>'

Schema (connect)​

{
"type": "array",
"items": {
"type": "string",
"format": "cron"
},
"minItems": 1
}

Schema (message)​

{
"type": "array",
"items": {
"type": "object",
"properties": {
"schedule": { "type": "string", "format": "cron" },
"subject": { "type": "string", "format": "nats-subject" }
},
"required": ["schedule"]
},
"minItems": 1
}