assistance-engine/output/candidate_E_reward_10_v1_pa...

287 lines
9.0 KiB
JSON

[
{
"task_id": 1,
"text": "Crear un endpoint que valide credenciales de usuario: recibe username y password, genera hash SHA256 de la contraseña, consulta la base de datos para verificar las credenciales y devuelve la cantidad de usuarios encontrados junto con el estado de autenticación.",
"code": "addParam(\"username\", user_input)\naddParam(\"password\", pass_input)\nencodeSHA256(pass_input, hashed_pass)\normAccessSelect(\"*\", \"users\", \"username='\" + user_input + \"' AND password='\" + hashed_pass + \"'\", user_results)\ngetListLen(user_results, total_users)\nif(total_users, 0, \">\")\n_status = 200\naddVar(auth_status, \"success\")\nelse()\n_status = 401\naddVar(auth_status, \"failed\")\nend()\naddVar(user_count, total_users)\naddResult(auth_status)\naddResult(user_count)",
"test_inputs": {
"username": "admin",
"password": "secret123"
},
"test_list": [
"re.match(r'success|failed', auth_status)",
"re.match(r'\\d+', str(user_count))"
],
"_cell": [
"encodeSHA256",
"getListLen",
"ormAccessSelect"
],
"_quality": {
"fidelity": 1.0,
"bonus_ratio": 0.2,
"test_quality": 1.0,
"richness": 0.5,
"quality": 1.31,
"detected": [
"_status",
"addParam",
"addResult",
"addVar",
"else",
"encodeSHA256",
"end",
"getListLen",
"if_mode1",
"ormAccessSelect"
],
"cell": [
"encodeSHA256",
"getListLen",
"ormAccessSelect"
],
"extra": [
"_status",
"addParam",
"addResult",
"addVar",
"else",
"end",
"if_mode1"
]
}
},
{
"task_id": 2,
"text": "Crear un sistema de autenticación que genere un hash SHA256 de la contraseña, ejecute una validación asíncrona del usuario y registre la fecha/hora del intento de login",
"code": "addParam(\"username\", username)\naddParam(\"password\", password)\nencodeSHA256(password, password_hash)\ntask_id = go validateUser(username, password_hash)\ngetDateTime(\"%Y-%m-%d %H:%M:%S\", 0, \"UTC\", login_time)\nresult = gather(task_id, 3000)\nif(result, None, \"!=\")\naddVar(_status, 200)\naddResult(username)\naddResult(login_time)\nelse()\naddVar(_status, 401)\nend()\n\nfunction validateUser(user, hash_pass)\n{\nif(user, \"admin\", \"==\")\nif(hash_pass, \"ef92b778bafe771e89245b89ecbc08a44a4e166c06659911881f383d4473e94f\", \"==\")\nreturn(\"valid\")\nelse()\nreturn(None)\nend()\nelse()\nreturn(None)\nend()\n}",
"test_inputs": {
"username": "admin",
"password": "secret123"
},
"test_list": [
"re.match(r'\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}', login_time)",
"re.match(r'[a-f0-9]{64}', password_hash)"
],
"_cell": [
"encodeSHA256",
"gather",
"getDateTime"
],
"_quality": {
"fidelity": 1.0,
"bonus_ratio": 0.257,
"test_quality": 1.0,
"richness": 0.833,
"quality": 1.36,
"detected": [
"_status",
"addParam",
"addResult",
"addVar",
"else",
"encodeSHA256",
"end",
"function",
"gather",
"getDateTime",
"if_mode1",
"return"
],
"cell": [
"encodeSHA256",
"gather",
"getDateTime"
],
"extra": [
"_status",
"addParam",
"addResult",
"addVar",
"else",
"end",
"function",
"if_mode1",
"return"
]
}
},
{
"task_id": 3,
"text": "Crear un servicio que valide credenciales de usuario mediante hash SHA256, registre el timestamp de autenticación y extraiga datos del perfil JSON del usuario",
"code": "addParam(\"user_credentials\", userData)\naddParam(\"profile\", profileData)\nvariableFromJSON(userData, \"password\", rawPassword)\nvariableFromJSON(userData, \"username\", username)\nvariableFromJSON(profileData, \"email\", userEmail)\nencodeSHA256(rawPassword, hashedPassword)\ngetTimeStamp(\"2024-01-15 10:30:00\", \"%Y-%m-%d %H:%M:%S\", 0, loginTimestamp)\nif(hashedPassword, \"5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8\", \"==\")\n addVar(_status, 200)\n addResult(username)\n addResult(userEmail)\n addResult(loginTimestamp)\nelse()\n addVar(_status, 401)\nend()",
"test_inputs": {
"user_credentials": "{\"username\":\"john\", \"password\":\"password\"}",
"profile": "{\"email\":\"john@example.com\", \"role\":\"user\"}"
},
"test_list": [
"re.match(r'john', username)",
"re.match(r'\\d{10}', str(loginTimestamp))"
],
"_cell": [
"encodeSHA256",
"getTimeStamp",
"variableFromJSON"
],
"_quality": {
"fidelity": 1.0,
"bonus_ratio": 0.2,
"test_quality": 1.0,
"richness": 0.5,
"quality": 1.31,
"detected": [
"_status",
"addParam",
"addResult",
"addVar",
"else",
"encodeSHA256",
"end",
"getTimeStamp",
"if_mode1",
"variableFromJSON"
],
"cell": [
"encodeSHA256",
"getTimeStamp",
"variableFromJSON"
],
"extra": [
"_status",
"addParam",
"addResult",
"addVar",
"else",
"end",
"if_mode1"
]
}
},
{
"task_id": 4,
"text": "Crear un endpoint que procese datos de usuario desde JSON, valide la longitud de una lista de elementos y establezca el código de respuesta HTTP apropiado según los resultados",
"code": "addParam(\"user_data\", json_data)\nvariableFromJSON(json_data, \"items\", user_items)\ngetListLen(user_items, items_count)\nif(items_count, 0, \">\")\n addVar(_status, 200)\n addResult(items_count)\nelse()\n addVar(_status, 400)\nend()",
"test_inputs": {
"user_data": "{\"items\": [\"producto1\", \"producto2\", \"producto3\"]}"
},
"test_list": [
"re.match(r'200', str(_status))",
"re.match(r'3', str(items_count))"
],
"_cell": [
"_status",
"getListLen",
"variableFromJSON"
],
"_quality": {
"fidelity": 1.0,
"bonus_ratio": 0.171,
"test_quality": 1.0,
"richness": 0.3,
"quality": 1.281,
"detected": [
"_status",
"addParam",
"addResult",
"addVar",
"else",
"end",
"getListLen",
"if_mode1",
"variableFromJSON"
],
"cell": [
"_status",
"getListLen",
"variableFromJSON"
],
"extra": [
"addParam",
"addResult",
"addVar",
"else",
"end",
"if_mode1"
]
}
},
{
"task_id": 5,
"text": "Escribe un microservicio que actualice el estado de una cuenta bancaria. Si el parámetro 'action' es 'freeze', cambia el estado a 'frozen'. Si es cualquier otra acción, cambia a 'active'. Usa una tabla llamada 'accounts' con campos id y status.",
"code": "addParam(\"account_id\", account_id)\naddParam(\"action\", action)\nif(action, \"freeze\", \"==\")\naddVar(new_status, \"frozen\")\nelse()\naddVar(new_status, \"active\")\nend()\normAccessUpdate([\"status\"], [new_status], \"accounts\", \"id = \" + account_id, update_result)\naddResult(update_result)\naddVar(_status, 200)",
"test_inputs": {
"account_id": "123",
"action": "freeze"
},
"test_list": [
"re.match(r'frozen', new_status)",
"re.match(r'200', str(_status))"
],
"_cell": [
"else",
"end",
"ormAccessUpdate"
],
"_quality": {
"fidelity": 1.0,
"bonus_ratio": 0.143,
"test_quality": 1.0,
"richness": 0.333,
"quality": 1.276,
"detected": [
"_status",
"addParam",
"addResult",
"addVar",
"else",
"end",
"if_mode1",
"ormAccessUpdate"
],
"cell": [
"else",
"end",
"ormAccessUpdate"
],
"extra": [
"_status",
"addParam",
"addResult",
"addVar",
"if_mode1"
]
}
},
{
"task_id": 6,
"text": "Crea un endpoint que genere un token de sesión único. El sistema debe generar una cadena aleatoria de 16 caracteres alfanuméricos, calcular su hash MD5 para crear un identificador seguro, y devolver ambos valores en la respuesta JSON.",
"code": "randomString(\"[a-zA-Z0-9]\", 16, token)\nencodeMD5(token, token_hash)\naddResult(token)\naddResult(token_hash)",
"test_inputs": {},
"test_list": [
"re.match(r'^[a-zA-Z0-9]{16}$', token)",
"re.match(r'^[a-f0-9]{32}$', token_hash)"
],
"_cell": [
"addResult",
"encodeMD5",
"randomString"
],
"_quality": {
"fidelity": 1.0,
"bonus_ratio": 0.0,
"test_quality": 1.0,
"richness": 0.133,
"quality": 1.213,
"detected": [
"addResult",
"encodeMD5",
"randomString"
],
"cell": [
"addResult",
"encodeMD5",
"randomString"
],
"extra": []
}
}
]