diff --git a/example/desktop_app.py b/example/desktop_app.py index 6ede640..3b109e9 100644 --- a/example/desktop_app.py +++ b/example/desktop_app.py @@ -133,6 +133,15 @@ async def main(): print(group) # [developer-docs.sdk.python.get-group]-end + environment_id = os.environ.get("OP_ENVIRONMENT_ID") + if environment_id is not None: + # [developer-docs.sdk.python.get-environment-variables]-start + # Read variables from a 1Password Environment + environment = await client.environments.get_variables(environment_id) + for variable in environment.variables: + print(f"{variable.name}: {variable.value} (masked: {variable.masked})") + # [developer-docs.sdk.python.get-environment-variables]-end + if __name__ == "__main__": asyncio.run(main()) diff --git a/example/example.py b/example/example.py index aa7a83b..588dadc 100644 --- a/example/example.py +++ b/example/example.py @@ -201,6 +201,15 @@ async def main(): await client.items.delete(created_item.vault_id, updated_item.id) # [developer-docs.sdk.python.delete-item]-end + environment_id = os.environ.get("OP_ENVIRONMENT_ID") + if environment_id is not None: + # [developer-docs.sdk.python.get-environment-variables]-start + # Read variables from a 1Password Environment + environment = await client.environments.get_variables(environment_id) + for variable in environment.variables: + print(f"{variable.name}: {variable.value} (masked: {variable.masked})") + # [developer-docs.sdk.python.get-environment-variables]-end + async def archive_item(client: Client, vault_id: str, item_id: str): # [developer-docs.sdk.python.archive-item]-start diff --git a/src/onepassword/__init__.py b/src/onepassword/__init__.py index bd9be8d..af799df 100644 --- a/src/onepassword/__init__.py +++ b/src/onepassword/__init__.py @@ -7,6 +7,7 @@ from .secrets import Secrets from .items import Items from .vaults import Vaults +from .environments import Environments from .groups import Groups @@ -19,6 +20,7 @@ "Secrets", "Items", "Vaults", + "Environments", "Groups", "DesktopAuth", "DEFAULT_INTEGRATION_NAME", diff --git a/src/onepassword/client.py b/src/onepassword/client.py index f5d191c..e9f56eb 100644 --- a/src/onepassword/client.py +++ b/src/onepassword/client.py @@ -8,6 +8,7 @@ from .secrets import Secrets from .items import Items from .vaults import Vaults +from .environments import Environments from .groups import Groups @@ -15,6 +16,7 @@ class Client: secrets: Secrets items: Items vaults: Vaults + environments: Environments groups: Groups @classmethod @@ -41,6 +43,7 @@ async def authenticate( authenticated_client.secrets = Secrets(inner_client) authenticated_client.items = Items(inner_client) authenticated_client.vaults = Vaults(inner_client) + authenticated_client.environments = Environments(inner_client) authenticated_client.groups = Groups(inner_client) authenticated_client._finalizer = weakref.finalize( cls, core.release_client, client_id diff --git a/src/onepassword/environments.py b/src/onepassword/environments.py new file mode 100644 index 0000000..e54c7df --- /dev/null +++ b/src/onepassword/environments.py @@ -0,0 +1,33 @@ +# Code generated by op-codegen - DO NO EDIT MANUALLY + +from .core import InnerClient +from pydantic import TypeAdapter +from .types import GetVariablesResponse + + +class Environments: + """ + The Environments API holds all the operations the SDK client can perform on 1Password Environments. + """ + + def __init__(self, inner_client: InnerClient): + self.inner_client = inner_client + + async def get_variables(self, environment_id: str) -> GetVariablesResponse: + """ + Get environment variables belonging to an Environment. + """ + response = await self.inner_client.invoke( + { + "invocation": { + "clientId": self.inner_client.client_id, + "parameters": { + "name": "EnvironmentsGetVariables", + "parameters": {"environment_id": environment_id}, + }, + } + } + ) + + response = TypeAdapter(GetVariablesResponse).validate_json(response) + return response diff --git a/src/onepassword/lib/aarch64/libop_uniffi_core.dylib b/src/onepassword/lib/aarch64/libop_uniffi_core.dylib index 1bd9aeb..3563637 100755 Binary files a/src/onepassword/lib/aarch64/libop_uniffi_core.dylib and b/src/onepassword/lib/aarch64/libop_uniffi_core.dylib differ diff --git a/src/onepassword/lib/aarch64/libop_uniffi_core.so b/src/onepassword/lib/aarch64/libop_uniffi_core.so index 7a2aa2b..0c099eb 100755 Binary files a/src/onepassword/lib/aarch64/libop_uniffi_core.so and b/src/onepassword/lib/aarch64/libop_uniffi_core.so differ diff --git a/src/onepassword/lib/x86_64/libop_uniffi_core.dylib b/src/onepassword/lib/x86_64/libop_uniffi_core.dylib index dcd27d1..d56feb0 100755 Binary files a/src/onepassword/lib/x86_64/libop_uniffi_core.dylib and b/src/onepassword/lib/x86_64/libop_uniffi_core.dylib differ diff --git a/src/onepassword/lib/x86_64/libop_uniffi_core.so b/src/onepassword/lib/x86_64/libop_uniffi_core.so index 69227f6..784d972 100755 Binary files a/src/onepassword/lib/x86_64/libop_uniffi_core.so and b/src/onepassword/lib/x86_64/libop_uniffi_core.so differ diff --git a/src/onepassword/lib/x86_64/op_uniffi_core.dll b/src/onepassword/lib/x86_64/op_uniffi_core.dll index c6cc4a0..8e7e7d6 100644 Binary files a/src/onepassword/lib/x86_64/op_uniffi_core.dll and b/src/onepassword/lib/x86_64/op_uniffi_core.dll differ diff --git a/src/onepassword/types.py b/src/onepassword/types.py index a3d5121..d74f011 100644 --- a/src/onepassword/types.py +++ b/src/onepassword/types.py @@ -88,6 +88,25 @@ class DocumentCreateParams(BaseModel): """ +class EnvironmentVariable(BaseModel): + """ + Represents an environment variable (name:value pair) and its masked state + """ + + name: str + """ + An environment variable's name + """ + value: str + """ + An environment variable's value + """ + masked: bool + """ + An environment variable's masked state + """ + + class FileAttributes(BaseModel): name: str """ @@ -140,6 +159,17 @@ class GeneratePasswordResponse(BaseModel): """ +class GetVariablesResponse(BaseModel): + """ + Response containing the full set of environment variables from an Environment. + """ + + variables: List[EnvironmentVariable] + """ + List of environment variables. + """ + + class GroupType(str, Enum): OWNERS = "owners" """