- Added a new column `national_code_verified` to the `users` table. - Normalized the `bank_account` field in the `representations` table from a single object to an array of IBANs with a default `verified` status of false. feat(ApiIrService): implement identity verification client for api.ir - Created `ApiIrService` to handle identity verification via api.ir. - Implemented methods for matching national code with mobile and IBAN with national code and birth date. - Added error handling and logging for external API requests.
1 line
11 KiB
JSON
1 line
11 KiB
JSON
{"nodes": [{"id": "users_hamed_pj_my_pj_clinic_pro_clinicpro_claude_prompt_fix_auth_token_hardening_md", "label": "fix-auth-token-hardening.md", "file_type": "document", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L1"}, {"id": "prompt_fix_auth_token_hardening_\u0633\u062e\u062a_\u0633\u0627\u0632\u06cc_\u0627\u062d\u0631\u0627\u0632_\u0647\u0648\u06cc\u062a_\u0648_\u062a\u0648\u06a9\u0646_c_1_h_1_h_4_m_1_m_3_headers", "label": "\u0633\u062e\u062a\u200c\u0633\u0627\u0632\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0648 \u062a\u0648\u06a9\u0646 (C-1, H-1, H-4, M-1, M-3, headers)", "file_type": "document", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L1"}, {"id": "prompt_fix_auth_token_hardening_\u067e\u0631\u0648\u0698\u0647", "label": "\u067e\u0631\u0648\u0698\u0647", "file_type": "document", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L3"}, {"id": "prompt_fix_auth_token_hardening_\u0632\u0645\u06cc\u0646\u0647", "label": "\u0632\u0645\u06cc\u0646\u0647", "file_type": "document", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L9"}, {"id": "prompt_fix_auth_token_hardening_\u0645\u0634\u06a9\u0644_\u0647\u062f\u0641", "label": "\u0645\u0634\u06a9\u0644 / \u0647\u062f\u0641", "file_type": "document", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L19"}, {"id": "prompt_fix_auth_token_hardening_\u0641\u0627\u06cc\u0644_\u0647\u0627\u06cc_\u0645\u0631\u062a\u0628\u0637", "label": "\u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0645\u0631\u062a\u0628\u0637", "file_type": "document", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L23"}, {"id": "prompt_fix_auth_token_hardening_\u0648\u0636\u0639\u06cc\u062a_\u0641\u0639\u0644\u06cc_\u06a9\u062f_\u0648\u0627\u0642\u0639\u06cc", "label": "\u0648\u0636\u0639\u06cc\u062a \u0641\u0639\u0644\u06cc (\u06a9\u062f \u0648\u0627\u0642\u0639\u06cc)", "file_type": "document", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L37"}, {"id": "prompt_fix_auth_token_hardening_\u0648\u0638\u0627\u06cc\u0641", "label": "\u0648\u0638\u0627\u06cc\u0641", "file_type": "document", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L72"}, {"id": "prompt_fix_auth_token_hardening_\u06f1_grant_\u06cc\u06a9_\u0628\u0627\u0631\u0645\u0635\u0631\u0641_\u062f\u0631_otpservice_c_1", "label": "\u06f1. Grant \u06cc\u06a9\u200c\u0628\u0627\u0631\u0645\u0635\u0631\u0641 \u062f\u0631 OtpService (C-1)", "file_type": "document", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L74"}, {"id": "prompt_fix_auth_token_hardening_\u06f2_\u0645\u0635\u0631\u0641_grant_\u062f\u0631_\u0646\u0642\u0627\u0637_\u0635\u062f\u0648\u0631_\u062a\u0648\u06a9\u0646_\u0631\u06cc\u0633\u062a_c_1_h_4", "label": "\u06f2. \u0645\u0635\u0631\u0641 grant \u062f\u0631 \u0646\u0642\u0627\u0637 \u0635\u062f\u0648\u0631 \u062a\u0648\u06a9\u0646/\u0631\u06cc\u0633\u062a (C-1, H-4)", "file_type": "document", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L115"}, {"id": "prompt_fix_auth_token_hardening_\u06f3_rate_limit_\u0631\u0648\u06cc_\u0646\u0642\u0627\u0637_\u062d\u0633\u0627\u0633_c_1_h_4", "label": "\u06f3. Rate-limit \u0631\u0648\u06cc \u0646\u0642\u0627\u0637 \u062d\u0633\u0627\u0633 (C-1, H-4)", "file_type": "document", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L138"}, {"id": "prompt_fix_auth_token_hardening_\u06f4_\u06a9\u0648\u062a\u0627\u0647_\u06a9\u0631\u062f\u0646_\u0639\u0645\u0631_jwt_h_1", "label": "\u06f4. \u06a9\u0648\u062a\u0627\u0647\u200c\u06a9\u0631\u062f\u0646 \u0639\u0645\u0631 JWT (H-1)", "file_type": "document", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L163"}, {"id": "prompt_fix_auth_token_hardening_\u06f5_randomize_\u0646\u0627\u0645_\u0641\u0627\u06cc\u0644_\u0622\u067e\u0644\u0648\u062f\u06cc_m_1", "label": "\u06f5. Randomize \u0646\u0627\u0645 \u0641\u0627\u06cc\u0644 \u0622\u067e\u0644\u0648\u062f\u06cc (M-1)", "file_type": "document", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L172"}, {"id": "prompt_fix_auth_token_hardening_\u06f6_\u0633\u0642\u0641_\u0633\u0631\u0627\u0633\u0631\u06cc_pagination_m_3", "label": "\u06f6. \u0633\u0642\u0641 \u0633\u0631\u0627\u0633\u0631\u06cc pagination (M-3)", "file_type": "document", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L184"}, {"id": "prompt_fix_auth_token_hardening_\u06f7_security_headers_\u062f\u0631_\u0633\u0637\u062d_symfony", "label": "\u06f7. Security headers \u062f\u0631 \u0633\u0637\u062d Symfony", "file_type": "document", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L192"}, {"id": "prompt_fix_auth_token_hardening_\u0646\u06a9\u0627\u062a_\u0645\u0647\u0645", "label": "\u0646\u06a9\u0627\u062a \u0645\u0647\u0645", "file_type": "document", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L208"}], "edges": [{"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_claude_prompt_fix_auth_token_hardening_md", "target": "prompt_fix_auth_token_hardening_\u0633\u062e\u062a_\u0633\u0627\u0632\u06cc_\u0627\u062d\u0631\u0627\u0632_\u0647\u0648\u06cc\u062a_\u0648_\u062a\u0648\u06a9\u0646_c_1_h_1_h_4_m_1_m_3_headers", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L1", "weight": 1.0}, {"source": "prompt_fix_auth_token_hardening_\u0633\u062e\u062a_\u0633\u0627\u0632\u06cc_\u0627\u062d\u0631\u0627\u0632_\u0647\u0648\u06cc\u062a_\u0648_\u062a\u0648\u06a9\u0646_c_1_h_1_h_4_m_1_m_3_headers", "target": "prompt_fix_auth_token_hardening_\u067e\u0631\u0648\u0698\u0647", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L3", "weight": 1.0}, {"source": "prompt_fix_auth_token_hardening_\u0633\u062e\u062a_\u0633\u0627\u0632\u06cc_\u0627\u062d\u0631\u0627\u0632_\u0647\u0648\u06cc\u062a_\u0648_\u062a\u0648\u06a9\u0646_c_1_h_1_h_4_m_1_m_3_headers", "target": "prompt_fix_auth_token_hardening_\u0632\u0645\u06cc\u0646\u0647", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L9", "weight": 1.0}, {"source": "prompt_fix_auth_token_hardening_\u0633\u062e\u062a_\u0633\u0627\u0632\u06cc_\u0627\u062d\u0631\u0627\u0632_\u0647\u0648\u06cc\u062a_\u0648_\u062a\u0648\u06a9\u0646_c_1_h_1_h_4_m_1_m_3_headers", "target": "prompt_fix_auth_token_hardening_\u0645\u0634\u06a9\u0644_\u0647\u062f\u0641", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L19", "weight": 1.0}, {"source": "prompt_fix_auth_token_hardening_\u0633\u062e\u062a_\u0633\u0627\u0632\u06cc_\u0627\u062d\u0631\u0627\u0632_\u0647\u0648\u06cc\u062a_\u0648_\u062a\u0648\u06a9\u0646_c_1_h_1_h_4_m_1_m_3_headers", "target": "prompt_fix_auth_token_hardening_\u0641\u0627\u06cc\u0644_\u0647\u0627\u06cc_\u0645\u0631\u062a\u0628\u0637", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L23", "weight": 1.0}, {"source": "prompt_fix_auth_token_hardening_\u0633\u062e\u062a_\u0633\u0627\u0632\u06cc_\u0627\u062d\u0631\u0627\u0632_\u0647\u0648\u06cc\u062a_\u0648_\u062a\u0648\u06a9\u0646_c_1_h_1_h_4_m_1_m_3_headers", "target": "prompt_fix_auth_token_hardening_\u0648\u0636\u0639\u06cc\u062a_\u0641\u0639\u0644\u06cc_\u06a9\u062f_\u0648\u0627\u0642\u0639\u06cc", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L37", "weight": 1.0}, {"source": "prompt_fix_auth_token_hardening_\u0633\u062e\u062a_\u0633\u0627\u0632\u06cc_\u0627\u062d\u0631\u0627\u0632_\u0647\u0648\u06cc\u062a_\u0648_\u062a\u0648\u06a9\u0646_c_1_h_1_h_4_m_1_m_3_headers", "target": "prompt_fix_auth_token_hardening_\u0648\u0638\u0627\u06cc\u0641", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L72", "weight": 1.0}, {"source": "prompt_fix_auth_token_hardening_\u0648\u0638\u0627\u06cc\u0641", "target": "prompt_fix_auth_token_hardening_\u06f1_grant_\u06cc\u06a9_\u0628\u0627\u0631\u0645\u0635\u0631\u0641_\u062f\u0631_otpservice_c_1", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L74", "weight": 1.0}, {"source": "prompt_fix_auth_token_hardening_\u0648\u0638\u0627\u06cc\u0641", "target": "prompt_fix_auth_token_hardening_\u06f2_\u0645\u0635\u0631\u0641_grant_\u062f\u0631_\u0646\u0642\u0627\u0637_\u0635\u062f\u0648\u0631_\u062a\u0648\u06a9\u0646_\u0631\u06cc\u0633\u062a_c_1_h_4", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L115", "weight": 1.0}, {"source": "prompt_fix_auth_token_hardening_\u0648\u0638\u0627\u06cc\u0641", "target": "prompt_fix_auth_token_hardening_\u06f3_rate_limit_\u0631\u0648\u06cc_\u0646\u0642\u0627\u0637_\u062d\u0633\u0627\u0633_c_1_h_4", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L138", "weight": 1.0}, {"source": "prompt_fix_auth_token_hardening_\u0648\u0638\u0627\u06cc\u0641", "target": "prompt_fix_auth_token_hardening_\u06f4_\u06a9\u0648\u062a\u0627\u0647_\u06a9\u0631\u062f\u0646_\u0639\u0645\u0631_jwt_h_1", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L163", "weight": 1.0}, {"source": "prompt_fix_auth_token_hardening_\u0648\u0638\u0627\u06cc\u0641", "target": "prompt_fix_auth_token_hardening_\u06f5_randomize_\u0646\u0627\u0645_\u0641\u0627\u06cc\u0644_\u0622\u067e\u0644\u0648\u062f\u06cc_m_1", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L172", "weight": 1.0}, {"source": "prompt_fix_auth_token_hardening_\u0648\u0638\u0627\u06cc\u0641", "target": "prompt_fix_auth_token_hardening_\u06f6_\u0633\u0642\u0641_\u0633\u0631\u0627\u0633\u0631\u06cc_pagination_m_3", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L184", "weight": 1.0}, {"source": "prompt_fix_auth_token_hardening_\u0648\u0638\u0627\u06cc\u0641", "target": "prompt_fix_auth_token_hardening_\u06f7_security_headers_\u062f\u0631_\u0633\u0637\u062d_symfony", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L192", "weight": 1.0}, {"source": "prompt_fix_auth_token_hardening_\u0633\u062e\u062a_\u0633\u0627\u0632\u06cc_\u0627\u062d\u0631\u0627\u0632_\u0647\u0648\u06cc\u062a_\u0648_\u062a\u0648\u06a9\u0646_c_1_h_1_h_4_m_1_m_3_headers", "target": "prompt_fix_auth_token_hardening_\u0646\u06a9\u0627\u062a_\u0645\u0647\u0645", "relation": "contains", "confidence": "EXTRACTED", "source_file": ".claude/prompt/fix-auth-token-hardening.md", "source_location": "L208", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} |