Skip to content

Available now

The Playground ​

The portal's Playground runs the gateway's own checks on a message, against your workspace's story state, and stops before anything is stored or sent. Use it before your first publish, to see what the bus would make of the next snapshot of a story, and to understand a refusal.

Run a dry run ​

  1. Sign in to the portal of your environment and open Playground (under Test).
  2. Under Send as, choose the producer app to check the message as. With one producer app connected to your workspace, it's already chosen.
  3. Paste a message, or choose one under Load an example. With a producer chosen, every example carries its first system_id in originating_system.system_id, so an accepted example can be published as it is.
  4. Press Validate.

A button that can't be used yet says why next to it, such as a missing message or client secret.

The verdict is the one a publish would get: accepted, with anything tolerated, or refused with each violation's source, rule and path. Every rule id links to its page in the rule catalogue. A refused message can be fixed in place and validated again.

Who would receive it ​

When the gateway accepts the message, the Playground also lists Would be received by: the consumer connections of your workspace whose filters match it, by message type, topic and source, as delivery would match them. Each shows its app and the organisation that owns it. The sender is taken to be the producer connection granted the message's originating_system.system_id. Nothing is delivered, and the list says who would receive the message, not what each system would do with it. Every route in your workspace is on the Routing map. When no connection would receive it, the Playground links to creating a consumer connection.

Your app's grants ​

With a producer chosen under Send as, the dry run also checks its grants, as a publish would: a system_id or message type it isn't granted is refused with producer.system_id_not_allowed or producer.message_type_not_allowed. Send as lists your organisation's own producer connections in the workspace that have a client secret. With No producer: check the message only, the dry run checks the message and not who sends it. Story ownership is judged from the message's originating_system.system_id with your workspace's setting (Story ownership), as on publish.

To check with your grants too, dry-run with your app's own credentials on your workspace's validate route: the same checks, and your CI can call it. See Token service and workspace API.

What a dry run checks ​

CheckedNot checked
Size, JSON, the envelope, the SOM version and the payload schemaYour credentials: the Playground uses your portal sign-in, not your app's token
Whether this message_id was already used in your workspaceYour app's grants, when you choose No producer
The snapshot sequence, against the story's last accepted snapshot in your workspaceAnything a consumer would do with the message (the Playground names who would receive it)

A dry run is not recorded: it doesn't appear in Activity, doesn't change story state, and doesn't use up a message_id.

The examples ​

ExampleExpect
New story: hurricane snapshot 1Accepted: valid, and a new story has no earlier state
Stale snapshot on your latest storyRefused 409: sequence_number must increase. Needs a story with two or more snapshots in your workspace
Published negative case: message_id not a UUIDRefused 400
Published negative case: pre-1.0 wire versionRefused 400
Published negative case: topic outside som.Refused 400
Skill warning copied from the skill library sampleRefused 400: see A warning that validates

Activity and the story timeline ​

Two more portal pages show what the bus did with your workspace's real publishes:

  • Activity: every gateway decision of the last 7 days, newest first, with outcome, status, producer, message type, story and rule ids. Never payloads.
  • Story timeline: each story of your workspace in the last 7 days. Open one to see its snapshots, tellings, warnings and refusals in order, and what changed between one snapshot and the next.

Only your workspace's traffic shows. An app RND registered in the bus configuration isn't in a workspace, so its traffic and stories don't appear, and the Playground doesn't see its story state: ask RND for its activity. See Your workspace in the portal.

Publish for real ​

Developers, admins and owners can also publish a message from the Playground as the producer chosen under Send as, with its client secret, to try the whole path before writing any code. After an accepted publish, the Playground links to the story in the Story timeline and to reading it from a consumer queue. See First steps.

SOM is an open standard maintained by the SOM working group. This service is not endorsed by it.