You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

sym-sdk

Package Overview
Dependencies
Maintainers
1
Versions
157
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sym-sdk - pypi Package Compare versions

Comparing version
0.56.0
to
0.57.0
+1
-1
PKG-INFO
Metadata-Version: 2.1
Name: sym-sdk
Version: 0.56.0
Version: 0.57.0
Summary: Sym's Python SDK

@@ -5,0 +5,0 @@ Home-page: https://sdk.docs.symops.com/

[tool.poetry]
name = "sym-sdk"
version = "v0.56.0"
version = "v0.57.0"
description = "Sym's Python SDK"

@@ -5,0 +5,0 @@ authors = ["Sym Engineering <pypi@symops.io>"]

@@ -26,3 +26,3 @@ # -*- coding: utf-8 -*-

'name': 'sym-sdk',
'version': '0.56.0',
'version': '0.57.0',
'description': "Sym's Python SDK",

@@ -29,0 +29,0 @@ 'long_description': 'Sym Python SDK\n================\n\n`Sym <https://symops.com/>`_ is the security workflow platform made for engineers, by engineers.\n\nWe solve the intent-to-execution gap between policies and workflows by providing fast-moving engineering teams with the just-right primitives to roll out best-practice controls.\n\nThis is the Python SDK for Sym.\nFor guides and other help, check out our `main docs site <https://docs.symops.com/>`_.\n\nThe SDK docs are broken into several core modules, which are described below.\nClick on one to see the classes and functions available in your `Handlers <https://docs.symops.com/docs/workflow-handlers>`_.\n\nThe Sym SDK is used to customize workflow templates that are exposed by our `Terraform provider <https://registry.terraform.io/providers/symopsio/sym/latest/docs>`_. Here\'s an example using the ``sym:approve`` Template!\n\n.. code-block:: python\n\n from sym.sdk.annotations import reducer\n from sym.sdk.integrations import pagerduty, okta, slack\n\n @reducer\n def get_approvers(evt):\n # The import here uses credentials defined in an Integration in Terraform\n if pagerduty.is_on_call(evt.user, schedule="id_of_eng_on_call"):\n # This is a self-approval in a DM\n return slack.user(evt.user)\n\n if evt.payload.fields["urgency"] == "Emergency":\n # This is a self-approval in a channel\n return slack.channel("#break-glass", allow_self=True)\n\n on_call_mgrs = okta.group("OnCallManagers").members()\n # This would cause each on-call manager to be DMed\n return slack.group([slack.user(x) for x in on_call_mgrs])\n\nIf you\'re interested in using Sym, please `reach out <https://symops.com/sales>`_!\n',

@@ -7,5 +7,7 @@ """Representations of Users in both Sym and third parties."""

from enum import Enum
from typing import TYPE_CHECKING, Dict, List, Literal, Optional
from typing import TYPE_CHECKING, Dict, List, Literal, Optional, Set
from uuid import UUID
from sym.sdk.request_permission import PermissionLevel
from .resource import SymBaseResource

@@ -76,3 +78,12 @@

def permission_levels(self) -> Set[PermissionLevel]:
"""Returns a set of PermissionLevels that apply to the role."""
if self == self.ADMIN:
return {PermissionLevel.ADMIN, PermissionLevel.MEMBER, PermissionLevel.ALL_USERS}
elif self == self.MEMBER:
return {PermissionLevel.MEMBER, PermissionLevel.ALL_USERS}
else:
return {PermissionLevel.ALL_USERS}
class User(ABC, SymBaseResource):

@@ -79,0 +90,0 @@ """The atomic representation of a user in Sym.