For Companies & Schools

Roles and Permissions

Edlink uses a Role-Based Access Control (RBAC) architecture to manage access across the Edlink Dashboard and Meta API. Team members are assigned one or more Team Roles, where each role is a named collection of granular System Permissions.

System permissions follow a strict {entity}.{verb} convention across 52 distinct system entities and four standard CRUD verbs (read, create, update, delete), totaling 208 individual permissions.

Multi-Role Assignment: A team member can hold multiple roles simultaneously. A member's effective permissions represent the union of all permissions granted across all of their assigned roles.


Every Edlink team includes three built-in default roles that are created and maintained automatically by Edlink:

RoleAccess LevelDescription
OwnerFull Administrative AccessComplete, unrestricted access to all team resources and system actions, including team settings, custom role management, role assignments, member removal, and billing.
EditorRead & Write AccessBroad operational read and write access across all standard team resources (applications, sources, integrations, onboarding, etc.). Cannot delete resources, create new teams, manage roles/permissions, or configure firewall blocks.
ViewerRead-Only AccessRead-only visibility across all team resources, settings, and logs. Cannot create, modify, or delete any resources.

Managed Role Specifications

  • Owner: Granted all 208 permissions in the system catalog (Object.values(SystemPermission)).
  • Editor: Granted all *.read permissions, plus all *.create and *.update permissions, with the explicit exclusion of:
    • All *.delete permissions.
    • teams.create (creating new teams).
    • team_roles.* and team_role_permissions.* (creating or modifying custom roles).
    • blocks.* (managing network firewall IP and CIDR blocks).
  • Viewer: Granted all 52 *.read permissions.

Immutability of Managed Roles

Edlink managed roles are defined at the platform level and shared across all teams. To ensure consistent baseline security, managed roles cannot be edited or deleted. Any attempt to modify their permissions or delete them via the API or Dashboard will be rejected (403 Forbidden).

Team Creation and Member Invitations

  • Team Creator: The user who creates a new team is automatically assigned the Owner role.
  • Inviting Members: When inviting someone, owners (or members with memberships.create) pick one or more team roles up front. Those roles are attached to the inactive membership at create time and apply when the invitee accepts — there is no separate View and Edit / View Only remapping step.
  • Once a member joins the team, administrators can assign additional custom or managed roles at any time.

Managing Roles

To view or manage roles, navigate to Settings in the top navigation header and select Roles from the sidebar.

The User Roles page displays two sections:

  1. Managed By Edlink: Lists the built-in catalog roles (Owner, Editor, Viewer). Clicking any managed role opens a read-only view of its assigned permissions and the number of active team members holding that role.
  2. Custom Roles: Lists all custom roles created specifically for your team.

Creating a Custom Role

Members with the team_roles.create permission can create tailor-made roles suited for specific responsibilities:

  1. Click Create a New Role on the Settings > Roles page.
  2. Enter a descriptive Role Name (e.g., Integration Engineer or Support Specialist).
  3. Enter an optional Description summarizing the role's purpose.
  4. Select the desired permissions across the purpose-grouped permission matrices (Team, Applications, Sources, Integrations, Identity, Onboarding, Chats, Public Data, Billing, and Privacy).
  5. Click Create Role to save. The new role is immediately available for assignment.

Editing or Deleting a Custom Role

  • Editing: Members with team_roles.update can click any custom role to adjust its name, description, or assigned permissions. Changes take effect immediately for all members holding that role.
  • Deleting: Members with team_roles.delete can click Delete Role in the role editor. Deleting a custom role immediately revokes that role and its associated permissions from all members who held it.

Assigning Roles to Team Members

Role assignments are managed on a per-member basis through the Team Members page:

  1. Navigate to Settings > Members.
  2. Click on any member's name in the table to open the Team Member sheet.
  3. In the Assigned Roles section:
    • Assign a Role: Use the role selector to search for and assign any managed or custom role. Requires the team_role_assignments.create permission.
    • Revoke a Role: Click Revoke next to an assigned role to remove it from the member. Requires the team_role_assignments.delete permission.

Safety Rule: To prevent accidental lockouts, the last remaining Owner on a team cannot be removed or have their Owner role revoked without transferring ownership to another active team member first.


Permission Structure

All system permissions follow the {entity}.{verb} format, where each entity corresponds to a distinct Meta resource:

VerbAction & Scope
readView, list, or inspect existing records, configurations, and system logs.
createCreate, insert, or initialize new records or sub-resources.
updateModify, patch, or execute trigger actions (e.g., validate, test, resend) on existing records.
deletePermanently remove, revoke, or soft-destroy existing records.

Child resources have their own dedicated entities (e.g., credentials, publishable_keys, syncs, rules) rather than inheriting parent area permissions, providing granular access control.


Complete Permissions Catalog

The following tables document all 208 system permissions across the 52 system entities, grouped into the purpose categories displayed in the Dashboard role editor.

1. Team Administration (team)

Governs team organization settings, user memberships (including pending invites as inactive memberships), role assignments, role definitions, firewall blocks, and system audit logs.

EntityDescriptionRead PermissionCreate PermissionUpdate PermissionDelete Permission
TeamsTeam profile and organization settingsteams.readteams.createteams.updateteams.delete
MembershipsTeam member accounts and state (active members and pending invites)memberships.readmemberships.creatememberships.updatememberships.delete
Team RolesCustom role definitionsteam_roles.readteam_roles.createteam_roles.updateteam_roles.delete
Team Role AssignmentsMember role assignmentsteam_role_assignments.readteam_role_assignments.createteam_role_assignments.updateteam_role_assignments.delete
Team Role PermissionsPermission grants attached to rolesteam_role_permissions.readteam_role_permissions.createteam_role_permissions.updateteam_role_permissions.delete
BlocksFirewall IP and CIDR access blocksblocks.readblocks.createblocks.updateblocks.delete
LogsSystem execution and audit logslogs.readlogs.createlogs.updatelogs.delete

2. Applications & Developer Keys (applications)

Governs applications, API credentials, publishable client-side keys, OAuth clients, webhook feed subscribers, origin security policies, and audit log schemas.

EntityDescriptionRead PermissionCreate PermissionUpdate PermissionDelete Permission
ApplicationsApplication records and configurationsapplications.readapplications.createapplications.updateapplications.delete
CredentialsAPI secret keys and service credentialscredentials.readcredentials.createcredentials.updatecredentials.delete
Publishable KeysFrontend and client-side publishable API keyspublishable_keys.readpublishable_keys.createpublishable_keys.updatepublishable_keys.delete
ClientsOAuth2 client applicationsclients.readclients.createclients.updateclients.delete
Feed SubscribersReal-time webhook and event subscribersfeed_subscribers.readfeed_subscribers.createfeed_subscribers.updatefeed_subscribers.delete
Origin PoliciesCORS and domain origin security policiesorigin_policies.readorigin_policies.createorigin_policies.updateorigin_policies.delete
Origin Policy CIDRsCIDR IP network restrictions for origin policiesorigin_policy_cidrs.readorigin_policy_cidrs.createorigin_policy_cidrs.updateorigin_policy_cidrs.delete
Origin Policy GeosGeographic country restrictions for origin policiesorigin_policy_geos.readorigin_policy_geos.createorigin_policy_geos.updateorigin_policy_geos.delete
Audit Log SchemasCustom audit log validation rules and schemasaudit_log_schemas.readaudit_log_schemas.createaudit_log_schemas.updateaudit_log_schemas.delete

3. Sources & Data Extractions (sources)

Governs data source connections (LMS, SIS), synchronization runs, extraction configurations, extractors, data enrichments, person linking, transformations, and overrides.

EntityDescriptionRead PermissionCreate PermissionUpdate PermissionDelete Permission
SourcesUpstream data sources (Canvas, ClassLink, etc.)sources.readsources.createsources.updatesources.delete
SyncsSynchronization pipeline runssyncs.readsyncs.createsyncs.updatesyncs.delete
ExtractionsRaw data extraction job runsextractions.readextractions.createextractions.updateextractions.delete
ExtractorsExtraction connector definitionsextractors.readextractors.createextractors.updateextractors.delete
EnrichmentsSource data enrichment processesenrichments.readenrichments.createenrichments.updateenrichments.delete
LinksCross-source person matching and linkinglinks.readlinks.createlinks.updatelinks.delete
TransformationsSource-level data transformation scriptstransformations.readtransformations.createtransformations.updatetransformations.delete
OverridesSource-level manual entity overridesoverrides.readoverrides.createoverrides.updateoverrides.delete

4. Integrations & Synchronization Rules (integrations)

Governs application integrations with sources, materialized views, sharing rules, rule filter conditions, sync flows, rule previews, and batch sync jobs.

EntityDescriptionRead PermissionCreate PermissionUpdate PermissionDelete Permission
IntegrationsApplication-to-source integration connectionsintegrations.readintegrations.createintegrations.updateintegrations.delete
MaterializationsCached integration database materializationsmaterializations.readmaterializations.creatematerializations.updatematerializations.delete
RulesData sharing and filtering rulesrules.readrules.createrules.updaterules.delete
ConditionsIndividual sharing rule filter conditionsconditions.readconditions.createconditions.updateconditions.delete
FlowsData synchronization flow pipelinesflows.readflows.createflows.updateflows.delete
PreviewsSharing rule impact preview runspreviews.readpreviews.createpreviews.updatepreviews.delete
JobsAsync integration background jobsjobs.readjobs.createjobs.updatejobs.delete

5. Identity & Access (identity)

Governs single sign-on Identity Providers (SAML, OIDC), user logins, service account access tokens, and audit log session management.

EntityDescriptionRead PermissionCreate PermissionUpdate PermissionDelete Permission
Identity ProvidersSAML and OIDC SSO identity providersidps.readidps.createidps.updateidps.delete
LoginsUser login session recordslogins.readlogins.createlogins.updatelogins.delete
TokensService account and API access tokenstokens.readtokens.createtokens.updatetokens.delete
Audit Log SessionsUser audit log and event sessionsaudit_log_sessions.readaudit_log_sessions.createaudit_log_sessions.updateaudit_log_sessions.delete

6. Onboarding (onboarding)

Governs client onboarding workflows and product catalog configurations.

EntityDescriptionRead PermissionCreate PermissionUpdate PermissionDelete Permission
OnboardingsCustomer onboarding workflows and link requestsonboardings.readonboardings.createonboardings.updateonboardings.delete
ProductsApplication products available during onboardingproducts.readproducts.createproducts.updateproducts.delete

7. Chats & Support (chats)

Governs integrated customer support and direct communication channels.

EntityDescriptionRead PermissionCreate PermissionUpdate PermissionDelete Permission
ChatsCustomer support conversations and messageschats.readchats.createchats.updatechats.delete

8. Monitoring (monitoring)

Governs dashboard-native monitor rules (live graph preview and future rule CRUD). Distinct from audit_log_sessions.*, which mint SIEM widget browse sessions.

EntityDescriptionRead PermissionCreate PermissionUpdate PermissionDelete Permission
Monitor RulesDashboard monitor rules and live graph previewmonitor_rules.readmonitor_rules.createmonitor_rules.updatemonitor_rules.delete

9. Public Data & Directory Claims (public_data)

Governs educational institution directories, company directories, and domain verification claims.

EntityDescriptionRead PermissionCreate PermissionUpdate PermissionDelete Permission
InstitutionsEducational institution directory profilesinstitutions.readinstitutions.createinstitutions.updateinstitutions.delete
CompaniesVendor company profilescompanies.readcompanies.createcompanies.updatecompanies.delete
Institution ClaimsOwnership and verification claims on institutionsinstitution_claims.readinstitution_claims.createinstitution_claims.updateinstitution_claims.delete
Company ClaimsOwnership and verification claims on companiescompany_claims.readcompany_claims.createcompany_claims.updatecompany_claims.delete

10. Billing & Subscriptions (billing)

Governs team subscription plans, recurring invoices, and payment methods.

EntityDescriptionRead PermissionCreate PermissionUpdate PermissionDelete Permission
InvoicesBilling invoices and payment receiptsinvoices.readinvoices.createinvoices.updateinvoices.delete
SubscriptionsActive subscription tiers and renewal cyclessubscriptions.readsubscriptions.createsubscriptions.updatesubscriptions.delete
PlansAvailable subscription pricing tiersplans.readplans.createplans.updateplans.delete
Payment MethodsCredit cards and bank payment methodspayment_methods.readpayment_methods.createpayment_methods.updatepayment_methods.delete

11. Privacy & Compliance (privacy)

Governs student data privacy agreements, custom agreement templates, privacy policies, third parties, and insurance coverage.

EntityDescriptionRead PermissionCreate PermissionUpdate PermissionDelete Permission
AgreementsSigned data privacy agreements (DPA)agreements.readagreements.createagreements.updateagreements.delete
Agreement TemplatesStandardized DPA contract templatesagreement_templates.readagreement_templates.createagreement_templates.updateagreement_templates.delete
PoliciesData retention and privacy policiespolicies.readpolicies.createpolicies.updatepolicies.delete
PartiesContracting parties and signatoriesparties.readparties.createparties.updateparties.delete
Insurance PoliciesCyber liability and cybersecurity insurance policiesinsurance_policies.readinsurance_policies.createinsurance_policies.updateinsurance_policies.delete

Best Practices

  • Follow Least Privilege: Grant members only the permissions necessary for their daily responsibilities. For example, a customer support agent might require chats.* and sources.read, but not write access to billing or applications.
  • Restrict Administrative Verbs: Limit team_roles.*, team_role_assignments.*, memberships.delete, and blocks.* to trusted senior administrators.
  • Leverage Custom Roles: Instead of elevating developers or partners to Owner, construct purpose-built custom roles (e.g., Integration Engineer, Compliance Officer) with exact permissions tailored to their job functions.
  • Audit Role Assignments Regularly: Periodically review the Settings > Members list to verify that assigned roles align with current organizational responsibilities.
  • Prompt Offboarding: When team members transition or depart, revoke their role assignments or remove their membership immediately to safeguard your organization's integrations and student data.