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)delete
([caller_id])Delete a document
Delete every instance of this document type
encrypt
(data, key)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 reverse_delete_rules
get_secret_from_id
(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
register_delete_rules
(klass, field_path, ...)Use the delete_rule to handle what should happen if the document the field is referencing is deleted.
reload
()Reload the document from the engine
save
([validate])Save a document to engine
secret_composer
(raw_string[, secret_manager])secret_parser
(source)to_db
()Translate the runtime data into raw data (materialized form of data)
update
([validate])Update existed fields
update_secret
(new_secret)validate
()Validate if all of the component of document follows the predefined rules
Attributes
DELETE
DENY
NULLIFY
PULL
Reversed delete rule constant definition
file_name
file_path
is_file
logger
If the document is not abstract, the collection_name should be provided
reverse_delete_rules
- REVERSE_DELETE_RULES = {'DELETE': 3, 'DENY': 2, 'NULLIFY': 1, 'PULL': 4}
Reversed delete rule constant definition
- delete(caller_id: Optional[str] = None)
Delete a document
- Parameters
caller_id (str) – The caller of cascade delete
- classmethod delete_all()
Delete every instance of this document type
- engine
alias of
FirestoreEngine
- 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
- 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
- classmethod get_reverse_delete_rules()
Get reverse_delete_rules
- Returns
reverse delete rules
- Return type
list
- 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
- meta = {'abstract': True}
If the document is not abstract, the collection_name should be provided
- 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
- classmethod register_delete_rules(klass, field_path: str, delete_rule: str)
Use the delete_rule to handle what should happen if the document the field is referencing is deleted.
The options are:
NULLIFY - Updates the reference to null.
CASCADE - Deletes the documents associated with the reference.
DENY - Prevent the deletion of the reference object.
PULL - Pull the reference from a list of reference
- reload()
Reload the document from the engine
- Returns
itself with refreshed data
- save(validate=True)
Save a document to engine
- Parameters
validate (bool) – Should the validation to be passed or not
- Returns
itself (with document id in the case of a new created document)
- to_db()
Translate the runtime data into raw data (materialized form of data)
- Returns
python dict object
- update(validate=True, **kwargs)
Update existed fields
- Parameters
validate (bool) – Should the data be validated before update or not
**kwargs – update parameters
- Returns
updated document in the form of python dict
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
- validate()
Validate if all of the component of document follows the predefined rules
- Returns
Always None. No exception raised means the validation passed