* implement analyzer interface for slack * slack analyzer adjusted for new changes in main, unit test added * link detector with analyzer for slack * added generated permissions for slack analyzer * generate permission fix, keep dot in permissions intact * removed scope from permission and put it metadata. * [chore] moved expected output of test in json file to neat the code. added team id in fully qualified name of user resource. check permissions before adding it in bindings. --------- Co-authored-by: Abdul Basit <[email protected]>
667 lines
18 KiB
JSON
667 lines
18 KiB
JSON
{
|
|
"AnalyzerType": 16,
|
|
"Bindings": [
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "conversations.history",
|
|
"Parent": null
|
|
}
|
|
},
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "conversations.replies",
|
|
"Parent": null
|
|
}
|
|
},
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "channels.info",
|
|
"Parent": null
|
|
}
|
|
},
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "conversations.info",
|
|
"Parent": null
|
|
}
|
|
},
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "conversations.list",
|
|
"Parent": null
|
|
}
|
|
},
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "conversations.members",
|
|
"Parent": null
|
|
}
|
|
},
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "groups.info",
|
|
"Parent": null
|
|
}
|
|
},
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "im.list",
|
|
"Parent": null
|
|
}
|
|
},
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "mpim.list",
|
|
"Parent": null
|
|
}
|
|
},
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "users.conversations",
|
|
"Parent": null
|
|
}
|
|
},
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "emoji.list",
|
|
"Parent": null
|
|
}
|
|
},
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "files.info",
|
|
"Parent": null
|
|
}
|
|
},
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "files.list",
|
|
"Parent": null
|
|
}
|
|
},
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "stars.list",
|
|
"Parent": null
|
|
}
|
|
},
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "pins.list",
|
|
"Parent": null
|
|
}
|
|
},
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "usergroups.list",
|
|
"Parent": null
|
|
}
|
|
},
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "usergroups.users.list",
|
|
"Parent": null
|
|
}
|
|
},
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "dnd.info",
|
|
"Parent": null
|
|
}
|
|
},
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "dnd.teamInfo",
|
|
"Parent": null
|
|
}
|
|
},
|
|
{
|
|
"Resource": {
|
|
"Name": "marge.haskell.bridge",
|
|
"FullyQualifiedName": "TSMCXP5FH/USMD5JM0F",
|
|
"Type": "user",
|
|
"Metadata": {
|
|
"scopes": [
|
|
"identify",
|
|
"channels:history",
|
|
"groups:history",
|
|
"im:history",
|
|
"channels:read",
|
|
"emoji:read",
|
|
"files:read",
|
|
"groups:read",
|
|
"im:read",
|
|
"stars:read",
|
|
"pins:read",
|
|
"usergroups:read",
|
|
"dnd:read",
|
|
"calls:read"
|
|
],
|
|
"team": "ct.org",
|
|
"team_id": "TSMCXP5FH",
|
|
"url": "https://ctorgworkspace.slack.com/"
|
|
},
|
|
"Parent": null
|
|
},
|
|
"Permission": {
|
|
"Value": "calls.info",
|
|
"Parent": null
|
|
}
|
|
}
|
|
],
|
|
"UnboundedResources": null,
|
|
"Metadata": null
|
|
} |