xia_meta_secret.secrets.Secrets
- class xia_meta_secret.secrets.Secrets(**kwargs)
Bases:
VirtualWorker
All Secrets should be managed here
- top_secret
Encrypt key of this realm
- owner_name
Owner of the secret
- Type
inherited
- name
Should be managed as a.b.c.d for the access control
- Type
inherited
- encrypted_secret
Encrypted password
- __init__(**kwargs)
Methods
__init__
(**kwargs)decrypt
(data, key)Decrypt data
delete
([cascade])Delete a document
Delete every instance of this document type
drop
()Drop the collection
encrypt
(data, key)Encrypt data
from_db
(**kwargs)Transform database data to internal data
from_display
(**kwargs)Transform Display data to internal data
Get collection name of current class
get_display_data
([lazy])Get Display data (visualized form of data)
get_id
()Get document id
Get Raw data (materialized form of data)
Get Runtime data (calculated from raw data when runtime is activated)
Get a sample document data
get_secret_from_id
(secret_id[, owner_name, ...])Get secret value from secret id
list
(owner_name[, limit])List objects of predefined criteria, default limited to 10 objects
load
(*args, **kwargs)Load a Document from engine
objects
(**kwargs)Search documents
reload
()Reload the document from the engine
save
([validate, cascade])Save a document to engine
secret_composer
(raw_string[, ...])String level secret parser
secret_parser
(source[, owner_name, prefix])Parse un string with secret id like ${{}}
to_db
([ignore_unknown, no_class])Translate the runtime data into raw data (materialized form of data)
update
([validate, cascade])Update existed fields
update_secret
(new_secret)Update secret value
validate
()Validate if all of the component of document follows the predefined rules
Attributes
Cluster Fields
file_name
file_path
is_file
Key Fields
logger
Partition information
reverse_delete_rules
- cluster_fields = []
Cluster Fields
- classmethod decrypt(data: str, key: str) str
Decrypt data
- Parameters
data (str) – data to be encrypted
key (str) – encryption key
- Returns
Decrypted data
- Return type
str
- delete(cascade: bool = True)
Delete a document
- Parameters
cascade (bool) – Activate the cascade delete
- classmethod delete_all()
Delete every instance of this document type
- classmethod drop()
Drop the collection
Hard way to delete the collection. No cascade relation will be considered
- classmethod encrypt(data: str, key: str) str
Encrypt data
- Parameters
data (str) – data to be encrypted
key (str) – encryption key
- Returns
encrypted data
- Return type
str
- classmethod from_db(**kwargs)
Transform database data to internal data
- Parameters
**kwargs (object) – python dict got from system
- Returns
python dict object
- classmethod from_display(**kwargs)
Transform Display data to internal data
- Parameters
**kwargs (object) – display object got from front end
- Returns
python dict object
- classmethod get_collection_name()
Get collection name of current class
- Returns
collection name
- Return type
str
- get_display_data(lazy: bool = True)
Get Display data (visualized form of data)
- Returns
python dict object
Notes
We will return the detail form if it is possible
- get_id()
Get document id
- Returns
Document ID
- Return type
str
- get_raw_data()
Get Raw data (materialized form of data)
- Returns
python dict object
- get_runtime_data()
Get Runtime data (calculated from raw data when runtime is activated)
- Returns
python dict object
- classmethod get_sample()
Get a sample document data
- classmethod get_secret_from_id(secret_id: str, owner_name: str = '', prefix: str = '') str
Get secret value from secret id
- Parameters
secret_id (str) – Secret id from engine
owner_name (str) – limiting the secret scope to a specified owner
prefix (str) – limiting the secret scope with name of a given prefix
Returns:
- key_fields = []
Key Fields
- classmethod list(owner_name: str, limit: int = 10, **kwargs)
List objects of predefined criteria, default limited to 10 objects
- classmethod load(*args, **kwargs)
Load a Document from engine
- Parameters
*args – a list document id (should only have one valid)
**kwargs –
- Returns
loaded document instance
- classmethod objects(**kwargs)
Search documents
- Parameters
**kwargs – Search Configuration
- Returns
generator of a found document
Notes
key, str pair: single value search
key, list pair: array_contains_any search
embedded search: a__b means b component of a. a.b means the key’s name is a.b
- operators: key is end with __op__. The following op are supported:
__eq__: Could ignore because it is a by default behavior
__lt__, __le__, __gt__, __ge__, __ne__: as is supposed by the name
__asc__, __desc__: the result will be ordered by the fields
- partition_info = {}
Partition information
- reload()
Reload the document from the engine
- Returns
itself with refreshed data
- save(validate: bool = True, cascade: bool = True)
Save a document to engine
- Parameters
validate (bool) – Should the validation to be passed or not
cascade (bool) – Save cascaded document
- Returns
itself (with document id in the case of a new created document)
- classmethod secret_composer(raw_string: str, secret_manager=None, owner_name: str = '', prefix: str = '') str
String level secret parser
- Parameters
raw_string (str) – String to be parsed
secret_manager – Callable to get the secret value
owner_name (str) – limiting the secret scope to a specified owner
prefix (str) – limiting the secret scope with name of a given prefix
- Returns
secret id replaced by secret value in the string
- Return type
str
- classmethod secret_parser(source, owner_name: str = '', prefix: str = '')
Parse un string with secret id like ${{}}
- Parameters
source (any) – Source to be parsed, could be dict, list or str
owner_name (str) – limiting the secret scope to a specified owner
prefix (str) – limiting the secret scope with name of a given prefix
- Returns
with secret parsed
- Return type
amy
- to_db(ignore_unknown: bool = False, no_class: bool = False)
Translate the runtime data into raw data (materialized form of data)
- Parameters
no_class (bool) – Don’t save the class name into document
ignore_unknown (bool) – When a field is not defined in the document, should we send it back to the database
- Returns
python dict object
- update(validate=True, cascade: bool = True, **kwargs)
Update existed fields
- Parameters
validate (bool) – Should the data be validated before update or not
cascade (bool) – Activate the cascade update / delete
**kwargs – update parameters
- Returns
updated document in the form of python object
Notes
Update String Specifications * embedded update: a__b means b component of a. a.b means the key’s name is a.b * operators: key is end with __op__. The following op are supported:
__append__: Append an item to array
__remove__: Remove an item
__delete__: Delete the field
Notes
We need to update the data from all sources
- update_secret(new_secret: str)
Update secret value
- Parameters
new_secret (str) – New secret value
- Returns
self
- validate()
Validate if all of the component of document follows the predefined rules
- Returns
Always None. No exception raised means the validation passed