security

alchemiscale.security.auth — security components for API services

exception alchemiscale.security.auth.AuthenticationError

Bases: Exception

alchemiscale.security.auth.authenticate(db, cls, identifier: str, key: str) CredentialedEntity | None

Authenticate the given identity+key against the db instance.

Parameters:
  • db – State store instance featuring a get_credentialed_entity method.

  • cls – The CredentialedEntity subclass the identity corresponds to.

  • identity – String identifier for the the identity.

  • key – Secret key string for the identity.

Returns:

  • If successfully authenticated, returns the CredentialedEntity subclass instance.

  • If not, returns None.

alchemiscale.security.auth.validate_secret(secret: str)

ensure secret has correct type & size


alchemiscale.security.models — data models for security components

class alchemiscale.security.models.ComputeIdentity(*args: Any, **kwargs: Any)

Bases: ScopedIdentity

class alchemiscale.security.models.CredentialedComputeIdentity(*args: Any, **kwargs: Any)

Bases: ComputeIdentity, CredentialedEntity

class alchemiscale.security.models.CredentialedEntity(*args: Any, **kwargs: Any)

Bases: BaseModel

class alchemiscale.security.models.CredentialedUserIdentity(*args: Any, **kwargs: Any)

Bases: UserIdentity, CredentialedEntity

class alchemiscale.security.models.ScopedIdentity(*args: Any, **kwargs: Any)

Bases: BaseModel

class alchemiscale.security.models.Token(*args: Any, **kwargs: Any)

Bases: BaseModel

class alchemiscale.security.models.TokenData(*args: Any, **kwargs: Any)

Bases: BaseModel

class alchemiscale.security.models.UserIdentity(*args: Any, **kwargs: Any)

Bases: ScopedIdentity