| parse_metabase_secret |
function |
py |
infra |
1.0.0 |
pure |
def parse_metabase_secret(secret_text: str, mode: str = 'auto') -> dict |
Parser puro que extrae credenciales de Metabase del texto crudo de un secreto de pass. Distingue API-key (una sola linea, p.ej. mb_... de metabase/aurgi-api-key) de sesion (multi-linea estilo captacion/metabase: primera linea password, linea email:/user:/login:/username: con el usuario). mode='auto' detecta el formato; mode='api_key' o 'session' fuerzan. No hace I/O. Devuelve dict {status, mode, api_key} o {status, mode, email, password} o {status:error, error}. Nunca lanza ni logea el secreto. |
| metabase |
| pass |
| secret |
| credential |
| parse |
| pure |
|
|
|
| name |
desc |
| secret_text |
Contenido completo del secreto leido de pass (varias lineas separadas por \n). Primera linea = password/clave por convencion de pass; lineas siguientes = metadata. |
|
| name |
desc |
| mode |
'api_key', 'session' o 'auto' (default). En auto: si hay linea email/usuario reconocible -> session; si no -> api_key. |
|
|
Dict. api_key: {status:'ok', mode:'api_key', api_key:str}. session: {status:'ok', mode:'session', email:str, password:str}. error: {status:'error', error:str} para texto vacio, modo invalido o session sin email/password. |
|
false |
|
|
true |
| test_api_key_explicit |
| test_session_multiline_email_prefix |
| test_auto_detects_session_when_email_present |
| test_auto_detects_api_key_single_line |
| test_session_without_email_line_errors |
| test_empty_secret_errors |
| test_invalid_mode_errors |
| test_user_prefix_variant |
| test_email_value_preserves_case |
|
python/functions/metabase/parse_metabase_secret_test.py |
python/functions/metabase/parse_metabase_secret.py |