Skip to main content

Participants

Participant publishing controls visibility of the participant list.

Why Participant Publishing?

  • Entry Management: Accept entries internally before announcing participant list
  • Privacy: Control when participant information becomes public
  • Marketing: Coordinate announcements with promotional campaigns
  • Staged Entries: Announce wildcards separately from direct acceptances

Publishing Participants

engine.publishParticipants();

// Clear previous publications and republish
engine.publishParticipants({
removePriorValues: true,
});

// Publish with embargo — participant list hidden until embargo time passes
engine.publishParticipants({
embargo: '2024-06-10T09:00:00Z',
});

See Embargo and Scheduled Rounds for details on how embargo enforcement works across all publishing levels.

API Reference: publishParticipants

Unpublishing Participants

engine.unPublishParticipants({
removePriorValues: true,
});

API Reference: unPublishParticipants

Privacy Policies

Publishing integrates with privacy policies to control which participant attributes are visible:

Participant Privacy Policy

import { policyConstants } from 'tods-competition-factory';

const privacyPolicy = {
participant: {
contacts: false, // Hide contact information
addresses: false, // Hide addresses
individualParticipants: {
// For pairs/teams
contacts: false,
addresses: false,
},
},
};

// Apply privacy policy during publishing
const { eventData } = engine.publishEvent({
eventId,
policyDefinitions: { [policyConstants.POLICY_TYPE_PARTICIPANT]: privacyPolicy },
});

// Participant data in eventData respects privacy policy
// Internal operations still have access to complete data

API Reference: publishEvent

Display Settings

Control visibility of specific matchUp and schedule attributes:

const displaySettings = {
matchUps: {
scheduleDate: true,
scheduledTime: false, // Hide specific times
courtName: true,
courtOrder: false,
},
participants: {
addresses: false,
contacts: false,
},
};

engine.setEventDisplay({
eventId,
displaySettings,
});

// Settings applied when usePublishState: true in queries

API Reference: setEventDisplay

Privacy by Default

Apply privacy policies consistently:

const defaultPrivacyPolicy = {
participant: {
contacts: false,
addresses: false,
individualParticipants: {
contacts: false,
addresses: false,
},
},
};

// Attach to tournament for consistent application
engine.attachPolicies({
policyDefinitions: {
[policyConstants.POLICY_TYPE_PARTICIPANT]: defaultPrivacyPolicy,
},
});