// For any authenticated user (most common)
const publicAccess: UserAccessConfig = {
$id: Now.ID['my_skill_public_acl'],
type: 'authenticated'
}
// For specific roles using sys_ids (strings)
const roleBasedAccess: UserAccessConfig = {
$id: Now.ID['my_skill_role_acl'],
type: 'roles',
roles: [
'2831a114c611228501d4ea6c309d626d', // admin role sys_id
'b85d44954a3623120004689b2d5dd60a' // itil role sys_id
]
}
// Using Role objects (for new custom roles)
// Note: Requires import { Role } from '@servicenow/sdk/core'
const roleObjectAccess: UserAccessConfig = {
$id: Now.ID['my_skill_custom_role_acl'],
type: 'roles',
roles: [
Role({
name: 'x_your_app.skill_user', // Use your app prefix
description: 'Can use custom skills'
}),
Role({
name: 'x_your_app.skill_admin',
description: 'Can manage custom skills'
})
]
}
// Using sys_user_role records (for existing roles)
const recordBasedAccess: UserAccessConfig = {
$id: Now.ID['my_skill_record_acl'],
type: 'roles',
roles: [
{ sys_user_role: 'admin' },
{ sys_user_role: 'itil' }
]
}
// Mixed approach (all types together)
const mixedAccess: UserAccessConfig = {
$id: Now.ID['my_skill_mixed_acl'],
type: 'roles',
roles: [
'2831a114c611228501d4ea6c309d626d', // sys_id string
Role({ name: 'x_your_app.custom_role' }), // Role object
{ sys_user_role: 'admin' } // Record reference
]
}
// Usage in NowAssistSkillConfig:
// securityControls: {
// userAccess: publicAccess, // or any of the above
// roleRestrictions: ['2831a114c611228501d4ea6c309d626d'] // admin role sys_id (ONLY sys_ids)
// }
User access configuration for NowAssist Skills Defines who can access and execute the skill