tapps-agents 3.5.40__py3-none-any.whl → 3.6.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tapps_agents/__init__.py +2 -2
- tapps_agents/agents/__init__.py +22 -22
- tapps_agents/agents/analyst/__init__.py +5 -5
- tapps_agents/agents/architect/__init__.py +5 -5
- tapps_agents/agents/architect/agent.py +1033 -1033
- tapps_agents/agents/architect/pattern_detector.py +75 -75
- tapps_agents/agents/cleanup/__init__.py +7 -7
- tapps_agents/agents/cleanup/agent.py +445 -445
- tapps_agents/agents/debugger/__init__.py +7 -7
- tapps_agents/agents/debugger/agent.py +310 -310
- tapps_agents/agents/debugger/error_analyzer.py +437 -437
- tapps_agents/agents/designer/__init__.py +5 -5
- tapps_agents/agents/designer/agent.py +786 -786
- tapps_agents/agents/designer/visual_designer.py +638 -638
- tapps_agents/agents/documenter/__init__.py +7 -7
- tapps_agents/agents/documenter/agent.py +531 -531
- tapps_agents/agents/documenter/doc_generator.py +472 -472
- tapps_agents/agents/documenter/doc_validator.py +393 -393
- tapps_agents/agents/documenter/framework_doc_updater.py +493 -493
- tapps_agents/agents/enhancer/__init__.py +7 -7
- tapps_agents/agents/evaluator/__init__.py +7 -7
- tapps_agents/agents/evaluator/agent.py +443 -443
- tapps_agents/agents/evaluator/priority_evaluator.py +641 -641
- tapps_agents/agents/evaluator/quality_analyzer.py +147 -147
- tapps_agents/agents/evaluator/report_generator.py +344 -344
- tapps_agents/agents/evaluator/usage_analyzer.py +192 -192
- tapps_agents/agents/evaluator/workflow_analyzer.py +189 -189
- tapps_agents/agents/implementer/__init__.py +7 -7
- tapps_agents/agents/implementer/agent.py +798 -798
- tapps_agents/agents/implementer/auto_fix.py +1119 -1119
- tapps_agents/agents/implementer/code_generator.py +73 -73
- tapps_agents/agents/improver/__init__.py +1 -1
- tapps_agents/agents/improver/agent.py +753 -753
- tapps_agents/agents/ops/__init__.py +1 -1
- tapps_agents/agents/ops/agent.py +619 -619
- tapps_agents/agents/ops/dependency_analyzer.py +600 -600
- tapps_agents/agents/orchestrator/__init__.py +5 -5
- tapps_agents/agents/orchestrator/agent.py +522 -522
- tapps_agents/agents/planner/__init__.py +7 -7
- tapps_agents/agents/planner/agent.py +1127 -1127
- tapps_agents/agents/reviewer/__init__.py +24 -24
- tapps_agents/agents/reviewer/agent.py +3513 -3513
- tapps_agents/agents/reviewer/aggregator.py +213 -213
- tapps_agents/agents/reviewer/batch_review.py +448 -448
- tapps_agents/agents/reviewer/cache.py +443 -443
- tapps_agents/agents/reviewer/context7_enhancer.py +630 -630
- tapps_agents/agents/reviewer/context_detector.py +203 -203
- tapps_agents/agents/reviewer/docker_compose_validator.py +158 -158
- tapps_agents/agents/reviewer/dockerfile_validator.py +176 -176
- tapps_agents/agents/reviewer/error_handling.py +126 -126
- tapps_agents/agents/reviewer/feedback_generator.py +490 -490
- tapps_agents/agents/reviewer/influxdb_validator.py +316 -316
- tapps_agents/agents/reviewer/issue_tracking.py +169 -169
- tapps_agents/agents/reviewer/library_detector.py +295 -295
- tapps_agents/agents/reviewer/library_patterns.py +268 -268
- tapps_agents/agents/reviewer/maintainability_scorer.py +593 -593
- tapps_agents/agents/reviewer/metric_strategies.py +276 -276
- tapps_agents/agents/reviewer/mqtt_validator.py +160 -160
- tapps_agents/agents/reviewer/output_enhancer.py +105 -105
- tapps_agents/agents/reviewer/pattern_detector.py +241 -241
- tapps_agents/agents/reviewer/performance_scorer.py +357 -357
- tapps_agents/agents/reviewer/phased_review.py +516 -516
- tapps_agents/agents/reviewer/progressive_review.py +435 -435
- tapps_agents/agents/reviewer/react_scorer.py +331 -331
- tapps_agents/agents/reviewer/score_constants.py +228 -228
- tapps_agents/agents/reviewer/score_validator.py +507 -507
- tapps_agents/agents/reviewer/scorer_registry.py +373 -373
- tapps_agents/agents/reviewer/scoring.py +1566 -1566
- tapps_agents/agents/reviewer/service_discovery.py +534 -534
- tapps_agents/agents/reviewer/tools/__init__.py +41 -41
- tapps_agents/agents/reviewer/tools/parallel_executor.py +581 -581
- tapps_agents/agents/reviewer/tools/ruff_grouping.py +250 -250
- tapps_agents/agents/reviewer/tools/scoped_mypy.py +284 -284
- tapps_agents/agents/reviewer/typescript_scorer.py +1142 -1142
- tapps_agents/agents/reviewer/validation.py +208 -208
- tapps_agents/agents/reviewer/websocket_validator.py +132 -132
- tapps_agents/agents/tester/__init__.py +7 -7
- tapps_agents/agents/tester/accessibility_auditor.py +309 -309
- tapps_agents/agents/tester/agent.py +1080 -1080
- tapps_agents/agents/tester/batch_generator.py +54 -54
- tapps_agents/agents/tester/context_learner.py +51 -51
- tapps_agents/agents/tester/coverage_analyzer.py +386 -386
- tapps_agents/agents/tester/coverage_test_generator.py +290 -290
- tapps_agents/agents/tester/debug_enhancer.py +238 -238
- tapps_agents/agents/tester/device_emulator.py +241 -241
- tapps_agents/agents/tester/integration_generator.py +62 -62
- tapps_agents/agents/tester/network_recorder.py +300 -300
- tapps_agents/agents/tester/performance_monitor.py +320 -320
- tapps_agents/agents/tester/test_fixer.py +316 -316
- tapps_agents/agents/tester/test_generator.py +632 -632
- tapps_agents/agents/tester/trace_manager.py +234 -234
- tapps_agents/agents/tester/visual_regression.py +291 -291
- tapps_agents/analysis/pattern_detector.py +36 -36
- tapps_agents/beads/hydration.py +213 -213
- tapps_agents/beads/parse.py +32 -32
- tapps_agents/beads/specs.py +206 -206
- tapps_agents/cli/__init__.py +9 -9
- tapps_agents/cli/__main__.py +8 -8
- tapps_agents/cli/base.py +478 -478
- tapps_agents/cli/command_classifier.py +72 -72
- tapps_agents/cli/commands/__init__.py +2 -2
- tapps_agents/cli/commands/analyst.py +173 -173
- tapps_agents/cli/commands/architect.py +109 -109
- tapps_agents/cli/commands/cleanup_agent.py +92 -92
- tapps_agents/cli/commands/common.py +126 -126
- tapps_agents/cli/commands/debugger.py +90 -90
- tapps_agents/cli/commands/designer.py +112 -112
- tapps_agents/cli/commands/documenter.py +136 -136
- tapps_agents/cli/commands/enhancer.py +110 -110
- tapps_agents/cli/commands/evaluator.py +255 -255
- tapps_agents/cli/commands/health.py +665 -665
- tapps_agents/cli/commands/implementer.py +301 -301
- tapps_agents/cli/commands/improver.py +91 -91
- tapps_agents/cli/commands/knowledge.py +111 -111
- tapps_agents/cli/commands/learning.py +172 -172
- tapps_agents/cli/commands/observability.py +283 -283
- tapps_agents/cli/commands/ops.py +135 -135
- tapps_agents/cli/commands/orchestrator.py +116 -116
- tapps_agents/cli/commands/planner.py +237 -237
- tapps_agents/cli/commands/reviewer.py +1872 -1872
- tapps_agents/cli/commands/status.py +285 -285
- tapps_agents/cli/commands/task.py +227 -219
- tapps_agents/cli/commands/tester.py +191 -191
- tapps_agents/cli/commands/top_level.py +3586 -3586
- tapps_agents/cli/feedback.py +936 -936
- tapps_agents/cli/formatters.py +608 -608
- tapps_agents/cli/help/__init__.py +7 -7
- tapps_agents/cli/help/static_help.py +425 -425
- tapps_agents/cli/network_detection.py +110 -110
- tapps_agents/cli/output_compactor.py +274 -274
- tapps_agents/cli/parsers/__init__.py +2 -2
- tapps_agents/cli/parsers/analyst.py +186 -186
- tapps_agents/cli/parsers/architect.py +167 -167
- tapps_agents/cli/parsers/cleanup_agent.py +228 -228
- tapps_agents/cli/parsers/debugger.py +116 -116
- tapps_agents/cli/parsers/designer.py +182 -182
- tapps_agents/cli/parsers/documenter.py +134 -134
- tapps_agents/cli/parsers/enhancer.py +113 -113
- tapps_agents/cli/parsers/evaluator.py +213 -213
- tapps_agents/cli/parsers/implementer.py +168 -168
- tapps_agents/cli/parsers/improver.py +132 -132
- tapps_agents/cli/parsers/ops.py +159 -159
- tapps_agents/cli/parsers/orchestrator.py +98 -98
- tapps_agents/cli/parsers/planner.py +145 -145
- tapps_agents/cli/parsers/reviewer.py +462 -462
- tapps_agents/cli/parsers/tester.py +124 -124
- tapps_agents/cli/progress_heartbeat.py +254 -254
- tapps_agents/cli/streaming_progress.py +336 -336
- tapps_agents/cli/utils/__init__.py +6 -6
- tapps_agents/cli/utils/agent_lifecycle.py +48 -48
- tapps_agents/cli/utils/error_formatter.py +82 -82
- tapps_agents/cli/utils/error_recovery.py +188 -188
- tapps_agents/cli/utils/output_handler.py +59 -59
- tapps_agents/cli/utils/prompt_enhancer.py +319 -319
- tapps_agents/cli/validators/__init__.py +9 -9
- tapps_agents/cli/validators/command_validator.py +81 -81
- tapps_agents/context7/__init__.py +112 -112
- tapps_agents/context7/agent_integration.py +869 -869
- tapps_agents/context7/analytics.py +382 -382
- tapps_agents/context7/analytics_dashboard.py +299 -299
- tapps_agents/context7/async_cache.py +681 -681
- tapps_agents/context7/backup_client.py +958 -958
- tapps_agents/context7/cache_locking.py +194 -194
- tapps_agents/context7/cache_metadata.py +214 -214
- tapps_agents/context7/cache_prewarm.py +488 -488
- tapps_agents/context7/cache_structure.py +168 -168
- tapps_agents/context7/cache_warming.py +604 -604
- tapps_agents/context7/circuit_breaker.py +376 -376
- tapps_agents/context7/cleanup.py +461 -461
- tapps_agents/context7/commands.py +858 -858
- tapps_agents/context7/credential_validation.py +276 -276
- tapps_agents/context7/cross_reference_resolver.py +168 -168
- tapps_agents/context7/cross_references.py +424 -424
- tapps_agents/context7/doc_manager.py +225 -225
- tapps_agents/context7/fuzzy_matcher.py +369 -369
- tapps_agents/context7/kb_cache.py +404 -404
- tapps_agents/context7/language_detector.py +219 -219
- tapps_agents/context7/library_detector.py +725 -725
- tapps_agents/context7/lookup.py +738 -738
- tapps_agents/context7/metadata.py +258 -258
- tapps_agents/context7/refresh_queue.py +300 -300
- tapps_agents/context7/security.py +373 -373
- tapps_agents/context7/staleness_policies.py +278 -278
- tapps_agents/context7/tiles_integration.py +47 -47
- tapps_agents/continuous_bug_fix/__init__.py +20 -20
- tapps_agents/continuous_bug_fix/bug_finder.py +306 -306
- tapps_agents/continuous_bug_fix/bug_fix_coordinator.py +177 -177
- tapps_agents/continuous_bug_fix/commit_manager.py +178 -178
- tapps_agents/continuous_bug_fix/continuous_bug_fixer.py +322 -322
- tapps_agents/continuous_bug_fix/proactive_bug_finder.py +285 -285
- tapps_agents/core/__init__.py +298 -298
- tapps_agents/core/adaptive_cache_config.py +432 -432
- tapps_agents/core/agent_base.py +647 -647
- tapps_agents/core/agent_cache.py +466 -466
- tapps_agents/core/agent_learning.py +1865 -1865
- tapps_agents/core/analytics_dashboard.py +563 -563
- tapps_agents/core/analytics_enhancements.py +597 -597
- tapps_agents/core/anonymization.py +274 -274
- tapps_agents/core/artifact_context_builder.py +293 -0
- tapps_agents/core/ast_parser.py +228 -228
- tapps_agents/core/async_file_ops.py +402 -402
- tapps_agents/core/best_practice_consultant.py +299 -299
- tapps_agents/core/brownfield_analyzer.py +299 -299
- tapps_agents/core/brownfield_review.py +541 -541
- tapps_agents/core/browser_controller.py +513 -513
- tapps_agents/core/capability_registry.py +418 -418
- tapps_agents/core/change_impact_analyzer.py +190 -190
- tapps_agents/core/checkpoint_manager.py +377 -377
- tapps_agents/core/code_generator.py +329 -329
- tapps_agents/core/code_validator.py +276 -276
- tapps_agents/core/command_registry.py +327 -327
- tapps_agents/core/config.py +33 -0
- tapps_agents/core/context_gathering/__init__.py +2 -2
- tapps_agents/core/context_gathering/repository_explorer.py +28 -28
- tapps_agents/core/context_intelligence/__init__.py +2 -2
- tapps_agents/core/context_intelligence/relevance_scorer.py +24 -24
- tapps_agents/core/context_intelligence/token_budget_manager.py +27 -27
- tapps_agents/core/context_manager.py +240 -240
- tapps_agents/core/cursor_feedback_monitor.py +146 -146
- tapps_agents/core/cursor_verification.py +290 -290
- tapps_agents/core/customization_loader.py +280 -280
- tapps_agents/core/customization_schema.py +260 -260
- tapps_agents/core/customization_template.py +238 -238
- tapps_agents/core/debug_logger.py +124 -124
- tapps_agents/core/design_validator.py +298 -298
- tapps_agents/core/diagram_generator.py +226 -226
- tapps_agents/core/docker_utils.py +232 -232
- tapps_agents/core/document_generator.py +617 -617
- tapps_agents/core/domain_detector.py +30 -30
- tapps_agents/core/error_envelope.py +454 -454
- tapps_agents/core/error_handler.py +270 -270
- tapps_agents/core/estimation_tracker.py +189 -189
- tapps_agents/core/eval_prompt_engine.py +116 -116
- tapps_agents/core/evaluation_base.py +119 -119
- tapps_agents/core/evaluation_models.py +320 -320
- tapps_agents/core/evaluation_orchestrator.py +225 -225
- tapps_agents/core/evaluators/__init__.py +7 -7
- tapps_agents/core/evaluators/architectural_evaluator.py +205 -205
- tapps_agents/core/evaluators/behavioral_evaluator.py +160 -160
- tapps_agents/core/evaluators/performance_profile_evaluator.py +160 -160
- tapps_agents/core/evaluators/security_posture_evaluator.py +148 -148
- tapps_agents/core/evaluators/spec_compliance_evaluator.py +181 -181
- tapps_agents/core/exceptions.py +107 -107
- tapps_agents/core/expert_config_generator.py +293 -293
- tapps_agents/core/export_schema.py +202 -202
- tapps_agents/core/external_feedback_models.py +102 -102
- tapps_agents/core/external_feedback_storage.py +213 -213
- tapps_agents/core/fallback_strategy.py +314 -314
- tapps_agents/core/feedback_analyzer.py +162 -162
- tapps_agents/core/feedback_collector.py +178 -178
- tapps_agents/core/git_operations.py +445 -445
- tapps_agents/core/hardware_profiler.py +151 -151
- tapps_agents/core/instructions.py +324 -324
- tapps_agents/core/io_guardrails.py +69 -69
- tapps_agents/core/issue_manifest.py +249 -249
- tapps_agents/core/issue_schema.py +139 -139
- tapps_agents/core/json_utils.py +128 -128
- tapps_agents/core/knowledge_graph.py +446 -446
- tapps_agents/core/language_detector.py +296 -296
- tapps_agents/core/learning_confidence.py +242 -242
- tapps_agents/core/learning_dashboard.py +246 -246
- tapps_agents/core/learning_decision.py +384 -384
- tapps_agents/core/learning_explainability.py +578 -578
- tapps_agents/core/learning_export.py +287 -287
- tapps_agents/core/learning_integration.py +228 -228
- tapps_agents/core/llm_behavior.py +232 -232
- tapps_agents/core/long_duration_support.py +786 -786
- tapps_agents/core/mcp_setup.py +106 -106
- tapps_agents/core/memory_integration.py +396 -396
- tapps_agents/core/meta_learning.py +666 -666
- tapps_agents/core/module_path_sanitizer.py +199 -199
- tapps_agents/core/multi_agent_orchestrator.py +382 -382
- tapps_agents/core/network_errors.py +125 -125
- tapps_agents/core/nfr_validator.py +336 -336
- tapps_agents/core/offline_mode.py +158 -158
- tapps_agents/core/output_contracts.py +300 -300
- tapps_agents/core/output_formatter.py +300 -300
- tapps_agents/core/path_normalizer.py +174 -174
- tapps_agents/core/path_validator.py +322 -322
- tapps_agents/core/pattern_library.py +250 -250
- tapps_agents/core/performance_benchmark.py +301 -301
- tapps_agents/core/performance_monitor.py +184 -184
- tapps_agents/core/playwright_mcp_controller.py +771 -771
- tapps_agents/core/policy_loader.py +135 -135
- tapps_agents/core/progress.py +166 -166
- tapps_agents/core/project_profile.py +354 -354
- tapps_agents/core/project_type_detector.py +454 -454
- tapps_agents/core/prompt_base.py +223 -223
- tapps_agents/core/prompt_learning/__init__.py +2 -2
- tapps_agents/core/prompt_learning/learning_loop.py +24 -24
- tapps_agents/core/prompt_learning/project_prompt_store.py +25 -25
- tapps_agents/core/prompt_learning/skills_prompt_analyzer.py +35 -35
- tapps_agents/core/prompt_optimization/__init__.py +6 -6
- tapps_agents/core/prompt_optimization/ab_tester.py +114 -114
- tapps_agents/core/prompt_optimization/correlation_analyzer.py +160 -160
- tapps_agents/core/prompt_optimization/progressive_refiner.py +129 -129
- tapps_agents/core/prompt_optimization/prompt_library.py +37 -37
- tapps_agents/core/requirements_evaluator.py +431 -431
- tapps_agents/core/resource_aware_executor.py +449 -449
- tapps_agents/core/resource_monitor.py +343 -343
- tapps_agents/core/resume_handler.py +298 -298
- tapps_agents/core/retry_handler.py +197 -197
- tapps_agents/core/review_checklists.py +479 -479
- tapps_agents/core/role_loader.py +201 -201
- tapps_agents/core/role_template_loader.py +201 -201
- tapps_agents/core/runtime_mode.py +60 -60
- tapps_agents/core/security_scanner.py +342 -342
- tapps_agents/core/skill_agent_registry.py +194 -194
- tapps_agents/core/skill_integration.py +208 -208
- tapps_agents/core/skill_loader.py +492 -492
- tapps_agents/core/skill_template.py +341 -341
- tapps_agents/core/skill_validator.py +478 -478
- tapps_agents/core/stack_analyzer.py +35 -35
- tapps_agents/core/startup.py +174 -174
- tapps_agents/core/storage_manager.py +397 -397
- tapps_agents/core/storage_models.py +166 -166
- tapps_agents/core/story_evaluator.py +410 -410
- tapps_agents/core/subprocess_utils.py +170 -170
- tapps_agents/core/task_duration.py +296 -296
- tapps_agents/core/task_memory.py +582 -582
- tapps_agents/core/task_state.py +226 -226
- tapps_agents/core/tech_stack_priorities.py +208 -208
- tapps_agents/core/temp_directory.py +194 -194
- tapps_agents/core/template_merger.py +600 -600
- tapps_agents/core/template_selector.py +280 -280
- tapps_agents/core/test_generator.py +286 -286
- tapps_agents/core/tiered_context.py +253 -253
- tapps_agents/core/token_monitor.py +345 -345
- tapps_agents/core/traceability.py +254 -254
- tapps_agents/core/trajectory_tracker.py +50 -50
- tapps_agents/core/unicode_safe.py +143 -143
- tapps_agents/core/unified_cache_config.py +170 -170
- tapps_agents/core/unified_state.py +324 -324
- tapps_agents/core/validate_cursor_setup.py +237 -237
- tapps_agents/core/validation_registry.py +136 -136
- tapps_agents/core/validators/__init__.py +4 -4
- tapps_agents/core/validators/python_validator.py +87 -87
- tapps_agents/core/verification_agent.py +90 -90
- tapps_agents/core/visual_feedback.py +644 -644
- tapps_agents/core/workflow_validator.py +197 -197
- tapps_agents/core/worktree.py +367 -367
- tapps_agents/docker/__init__.py +10 -10
- tapps_agents/docker/analyzer.py +186 -186
- tapps_agents/docker/debugger.py +229 -229
- tapps_agents/docker/error_patterns.py +216 -216
- tapps_agents/epic/__init__.py +22 -22
- tapps_agents/epic/beads_sync.py +115 -115
- tapps_agents/epic/markdown_sync.py +105 -105
- tapps_agents/epic/models.py +96 -96
- tapps_agents/experts/__init__.py +163 -163
- tapps_agents/experts/agent_integration.py +243 -243
- tapps_agents/experts/auto_generator.py +331 -331
- tapps_agents/experts/base_expert.py +536 -536
- tapps_agents/experts/builtin_registry.py +261 -261
- tapps_agents/experts/business_metrics.py +565 -565
- tapps_agents/experts/cache.py +266 -266
- tapps_agents/experts/confidence_breakdown.py +306 -306
- tapps_agents/experts/confidence_calculator.py +336 -336
- tapps_agents/experts/confidence_metrics.py +236 -236
- tapps_agents/experts/domain_config.py +311 -311
- tapps_agents/experts/domain_detector.py +550 -550
- tapps_agents/experts/domain_utils.py +84 -84
- tapps_agents/experts/expert_config.py +113 -113
- tapps_agents/experts/expert_engine.py +465 -465
- tapps_agents/experts/expert_registry.py +744 -744
- tapps_agents/experts/expert_synthesizer.py +70 -70
- tapps_agents/experts/governance.py +197 -197
- tapps_agents/experts/history_logger.py +312 -312
- tapps_agents/experts/knowledge/README.md +180 -180
- tapps_agents/experts/knowledge/accessibility/accessible-forms.md +331 -331
- tapps_agents/experts/knowledge/accessibility/aria-patterns.md +344 -344
- tapps_agents/experts/knowledge/accessibility/color-contrast.md +285 -285
- tapps_agents/experts/knowledge/accessibility/keyboard-navigation.md +332 -332
- tapps_agents/experts/knowledge/accessibility/screen-readers.md +282 -282
- tapps_agents/experts/knowledge/accessibility/semantic-html.md +355 -355
- tapps_agents/experts/knowledge/accessibility/testing-accessibility.md +369 -369
- tapps_agents/experts/knowledge/accessibility/wcag-2.1.md +296 -296
- tapps_agents/experts/knowledge/accessibility/wcag-2.2.md +211 -211
- tapps_agents/experts/knowledge/agent-learning/best-practices.md +715 -715
- tapps_agents/experts/knowledge/agent-learning/pattern-extraction.md +282 -282
- tapps_agents/experts/knowledge/agent-learning/prompt-optimization.md +320 -320
- tapps_agents/experts/knowledge/ai-frameworks/model-optimization.md +90 -90
- tapps_agents/experts/knowledge/ai-frameworks/openvino-patterns.md +260 -260
- tapps_agents/experts/knowledge/api-design-integration/api-gateway-patterns.md +309 -309
- tapps_agents/experts/knowledge/api-design-integration/api-security-patterns.md +521 -521
- tapps_agents/experts/knowledge/api-design-integration/api-versioning.md +421 -421
- tapps_agents/experts/knowledge/api-design-integration/async-protocol-patterns.md +61 -61
- tapps_agents/experts/knowledge/api-design-integration/contract-testing.md +221 -221
- tapps_agents/experts/knowledge/api-design-integration/external-api-integration.md +489 -489
- tapps_agents/experts/knowledge/api-design-integration/fastapi-patterns.md +360 -360
- tapps_agents/experts/knowledge/api-design-integration/fastapi-testing.md +262 -262
- tapps_agents/experts/knowledge/api-design-integration/graphql-patterns.md +582 -582
- tapps_agents/experts/knowledge/api-design-integration/grpc-best-practices.md +499 -499
- tapps_agents/experts/knowledge/api-design-integration/mqtt-patterns.md +455 -455
- tapps_agents/experts/knowledge/api-design-integration/rate-limiting.md +507 -507
- tapps_agents/experts/knowledge/api-design-integration/restful-api-design.md +618 -618
- tapps_agents/experts/knowledge/api-design-integration/websocket-patterns.md +480 -480
- tapps_agents/experts/knowledge/cloud-infrastructure/cloud-native-patterns.md +175 -175
- tapps_agents/experts/knowledge/cloud-infrastructure/container-health-checks.md +261 -261
- tapps_agents/experts/knowledge/cloud-infrastructure/containerization.md +222 -222
- tapps_agents/experts/knowledge/cloud-infrastructure/cost-optimization.md +122 -122
- tapps_agents/experts/knowledge/cloud-infrastructure/disaster-recovery.md +153 -153
- tapps_agents/experts/knowledge/cloud-infrastructure/dockerfile-patterns.md +285 -285
- tapps_agents/experts/knowledge/cloud-infrastructure/infrastructure-as-code.md +187 -187
- tapps_agents/experts/knowledge/cloud-infrastructure/kubernetes-patterns.md +253 -253
- tapps_agents/experts/knowledge/cloud-infrastructure/multi-cloud-strategies.md +155 -155
- tapps_agents/experts/knowledge/cloud-infrastructure/serverless-architecture.md +200 -200
- tapps_agents/experts/knowledge/code-quality-analysis/README.md +16 -16
- tapps_agents/experts/knowledge/code-quality-analysis/code-metrics.md +137 -137
- tapps_agents/experts/knowledge/code-quality-analysis/complexity-analysis.md +181 -181
- tapps_agents/experts/knowledge/code-quality-analysis/technical-debt-patterns.md +191 -191
- tapps_agents/experts/knowledge/data-privacy-compliance/anonymization.md +313 -313
- tapps_agents/experts/knowledge/data-privacy-compliance/ccpa.md +255 -255
- tapps_agents/experts/knowledge/data-privacy-compliance/consent-management.md +282 -282
- tapps_agents/experts/knowledge/data-privacy-compliance/data-minimization.md +275 -275
- tapps_agents/experts/knowledge/data-privacy-compliance/data-retention.md +297 -297
- tapps_agents/experts/knowledge/data-privacy-compliance/data-subject-rights.md +383 -383
- tapps_agents/experts/knowledge/data-privacy-compliance/encryption-privacy.md +285 -285
- tapps_agents/experts/knowledge/data-privacy-compliance/gdpr.md +344 -344
- tapps_agents/experts/knowledge/data-privacy-compliance/hipaa.md +385 -385
- tapps_agents/experts/knowledge/data-privacy-compliance/privacy-by-design.md +280 -280
- tapps_agents/experts/knowledge/database-data-management/acid-vs-cap.md +164 -164
- tapps_agents/experts/knowledge/database-data-management/backup-and-recovery.md +182 -182
- tapps_agents/experts/knowledge/database-data-management/data-modeling.md +172 -172
- tapps_agents/experts/knowledge/database-data-management/database-design.md +187 -187
- tapps_agents/experts/knowledge/database-data-management/flux-query-optimization.md +342 -342
- tapps_agents/experts/knowledge/database-data-management/influxdb-connection-patterns.md +432 -432
- tapps_agents/experts/knowledge/database-data-management/influxdb-patterns.md +442 -442
- tapps_agents/experts/knowledge/database-data-management/migration-strategies.md +216 -216
- tapps_agents/experts/knowledge/database-data-management/nosql-patterns.md +259 -259
- tapps_agents/experts/knowledge/database-data-management/scalability-patterns.md +184 -184
- tapps_agents/experts/knowledge/database-data-management/sql-optimization.md +175 -175
- tapps_agents/experts/knowledge/database-data-management/time-series-modeling.md +444 -444
- tapps_agents/experts/knowledge/development-workflow/README.md +16 -16
- tapps_agents/experts/knowledge/development-workflow/automation-best-practices.md +216 -216
- tapps_agents/experts/knowledge/development-workflow/build-strategies.md +198 -198
- tapps_agents/experts/knowledge/development-workflow/deployment-patterns.md +205 -205
- tapps_agents/experts/knowledge/development-workflow/git-workflows.md +205 -205
- tapps_agents/experts/knowledge/documentation-knowledge-management/README.md +16 -16
- tapps_agents/experts/knowledge/documentation-knowledge-management/api-documentation-patterns.md +231 -231
- tapps_agents/experts/knowledge/documentation-knowledge-management/documentation-standards.md +191 -191
- tapps_agents/experts/knowledge/documentation-knowledge-management/knowledge-management.md +171 -171
- tapps_agents/experts/knowledge/documentation-knowledge-management/technical-writing-guide.md +192 -192
- tapps_agents/experts/knowledge/observability-monitoring/alerting-patterns.md +461 -461
- tapps_agents/experts/knowledge/observability-monitoring/apm-tools.md +459 -459
- tapps_agents/experts/knowledge/observability-monitoring/distributed-tracing.md +367 -367
- tapps_agents/experts/knowledge/observability-monitoring/logging-strategies.md +478 -478
- tapps_agents/experts/knowledge/observability-monitoring/metrics-and-monitoring.md +510 -510
- tapps_agents/experts/knowledge/observability-monitoring/observability-best-practices.md +492 -492
- tapps_agents/experts/knowledge/observability-monitoring/open-telemetry.md +573 -573
- tapps_agents/experts/knowledge/observability-monitoring/slo-sli-sla.md +419 -419
- tapps_agents/experts/knowledge/performance/anti-patterns.md +284 -284
- tapps_agents/experts/knowledge/performance/api-performance.md +256 -256
- tapps_agents/experts/knowledge/performance/caching.md +327 -327
- tapps_agents/experts/knowledge/performance/database-performance.md +252 -252
- tapps_agents/experts/knowledge/performance/optimization-patterns.md +327 -327
- tapps_agents/experts/knowledge/performance/profiling.md +297 -297
- tapps_agents/experts/knowledge/performance/resource-management.md +293 -293
- tapps_agents/experts/knowledge/performance/scalability.md +306 -306
- tapps_agents/experts/knowledge/security/owasp-top10.md +209 -209
- tapps_agents/experts/knowledge/security/secure-coding-practices.md +207 -207
- tapps_agents/experts/knowledge/security/threat-modeling.md +220 -220
- tapps_agents/experts/knowledge/security/vulnerability-patterns.md +342 -342
- tapps_agents/experts/knowledge/software-architecture/docker-compose-patterns.md +314 -314
- tapps_agents/experts/knowledge/software-architecture/microservices-patterns.md +379 -379
- tapps_agents/experts/knowledge/software-architecture/service-communication.md +316 -316
- tapps_agents/experts/knowledge/testing/best-practices.md +310 -310
- tapps_agents/experts/knowledge/testing/coverage-analysis.md +293 -293
- tapps_agents/experts/knowledge/testing/mocking.md +256 -256
- tapps_agents/experts/knowledge/testing/test-automation.md +276 -276
- tapps_agents/experts/knowledge/testing/test-data.md +271 -271
- tapps_agents/experts/knowledge/testing/test-design-patterns.md +280 -280
- tapps_agents/experts/knowledge/testing/test-maintenance.md +236 -236
- tapps_agents/experts/knowledge/testing/test-strategies.md +311 -311
- tapps_agents/experts/knowledge/user-experience/information-architecture.md +325 -325
- tapps_agents/experts/knowledge/user-experience/interaction-design.md +363 -363
- tapps_agents/experts/knowledge/user-experience/prototyping.md +293 -293
- tapps_agents/experts/knowledge/user-experience/usability-heuristics.md +337 -337
- tapps_agents/experts/knowledge/user-experience/usability-testing.md +311 -311
- tapps_agents/experts/knowledge/user-experience/user-journeys.md +296 -296
- tapps_agents/experts/knowledge/user-experience/user-research.md +373 -373
- tapps_agents/experts/knowledge/user-experience/ux-principles.md +340 -340
- tapps_agents/experts/knowledge_freshness.py +321 -321
- tapps_agents/experts/knowledge_ingestion.py +438 -438
- tapps_agents/experts/knowledge_need_detector.py +93 -93
- tapps_agents/experts/knowledge_validator.py +382 -382
- tapps_agents/experts/observability.py +440 -440
- tapps_agents/experts/passive_notifier.py +238 -238
- tapps_agents/experts/proactive_orchestrator.py +32 -32
- tapps_agents/experts/rag_chunker.py +205 -205
- tapps_agents/experts/rag_embedder.py +152 -152
- tapps_agents/experts/rag_evaluation.py +299 -299
- tapps_agents/experts/rag_index.py +303 -303
- tapps_agents/experts/rag_metrics.py +293 -293
- tapps_agents/experts/rag_safety.py +263 -263
- tapps_agents/experts/report_generator.py +296 -296
- tapps_agents/experts/setup_wizard.py +441 -441
- tapps_agents/experts/simple_rag.py +431 -431
- tapps_agents/experts/vector_rag.py +354 -354
- tapps_agents/experts/weight_distributor.py +304 -304
- tapps_agents/health/__init__.py +24 -24
- tapps_agents/health/base.py +75 -75
- tapps_agents/health/checks/__init__.py +22 -22
- tapps_agents/health/checks/automation.py +127 -127
- tapps_agents/health/checks/context7_cache.py +210 -210
- tapps_agents/health/checks/environment.py +116 -116
- tapps_agents/health/checks/execution.py +170 -170
- tapps_agents/health/checks/knowledge_base.py +187 -187
- tapps_agents/health/checks/outcomes.py +324 -324
- tapps_agents/health/collector.py +280 -280
- tapps_agents/health/dashboard.py +137 -137
- tapps_agents/health/metrics.py +151 -151
- tapps_agents/health/orchestrator.py +271 -271
- tapps_agents/health/registry.py +166 -166
- tapps_agents/hooks/__init__.py +33 -33
- tapps_agents/hooks/config.py +140 -140
- tapps_agents/hooks/events.py +135 -135
- tapps_agents/hooks/executor.py +128 -128
- tapps_agents/hooks/manager.py +143 -143
- tapps_agents/integration/__init__.py +8 -8
- tapps_agents/integration/service_integrator.py +121 -121
- tapps_agents/integrations/__init__.py +10 -10
- tapps_agents/integrations/clawdbot.py +525 -525
- tapps_agents/integrations/memory_bridge.py +356 -356
- tapps_agents/mcp/__init__.py +18 -18
- tapps_agents/mcp/gateway.py +112 -112
- tapps_agents/mcp/servers/__init__.py +13 -13
- tapps_agents/mcp/servers/analysis.py +204 -204
- tapps_agents/mcp/servers/context7.py +198 -198
- tapps_agents/mcp/servers/filesystem.py +218 -218
- tapps_agents/mcp/servers/git.py +201 -201
- tapps_agents/mcp/tool_registry.py +115 -115
- tapps_agents/quality/__init__.py +54 -54
- tapps_agents/quality/coverage_analyzer.py +379 -379
- tapps_agents/quality/enforcement.py +82 -82
- tapps_agents/quality/gates/__init__.py +37 -37
- tapps_agents/quality/gates/approval_gate.py +255 -255
- tapps_agents/quality/gates/base.py +84 -84
- tapps_agents/quality/gates/exceptions.py +43 -43
- tapps_agents/quality/gates/policy_gate.py +195 -195
- tapps_agents/quality/gates/registry.py +239 -239
- tapps_agents/quality/gates/security_gate.py +156 -156
- tapps_agents/quality/quality_gates.py +369 -369
- tapps_agents/quality/secret_scanner.py +335 -335
- tapps_agents/session/__init__.py +19 -19
- tapps_agents/session/manager.py +256 -256
- tapps_agents/simple_mode/__init__.py +66 -66
- tapps_agents/simple_mode/agent_contracts.py +357 -357
- tapps_agents/simple_mode/beads_hooks.py +151 -151
- tapps_agents/simple_mode/code_snippet_handler.py +382 -382
- tapps_agents/simple_mode/documentation_manager.py +395 -395
- tapps_agents/simple_mode/documentation_reader.py +187 -187
- tapps_agents/simple_mode/file_inference.py +292 -292
- tapps_agents/simple_mode/framework_change_detector.py +268 -268
- tapps_agents/simple_mode/intent_parser.py +510 -510
- tapps_agents/simple_mode/learning_progression.py +358 -358
- tapps_agents/simple_mode/nl_handler.py +700 -700
- tapps_agents/simple_mode/onboarding.py +253 -253
- tapps_agents/simple_mode/orchestrators/__init__.py +38 -38
- tapps_agents/simple_mode/orchestrators/base.py +185 -185
- tapps_agents/simple_mode/orchestrators/breakdown_orchestrator.py +49 -49
- tapps_agents/simple_mode/orchestrators/brownfield_orchestrator.py +135 -135
- tapps_agents/simple_mode/orchestrators/build_orchestrator.py +2700 -2667
- tapps_agents/simple_mode/orchestrators/deliverable_checklist.py +349 -349
- tapps_agents/simple_mode/orchestrators/enhance_orchestrator.py +53 -53
- tapps_agents/simple_mode/orchestrators/epic_orchestrator.py +122 -122
- tapps_agents/simple_mode/orchestrators/explore_orchestrator.py +184 -184
- tapps_agents/simple_mode/orchestrators/fix_orchestrator.py +723 -723
- tapps_agents/simple_mode/orchestrators/plan_analysis_orchestrator.py +206 -206
- tapps_agents/simple_mode/orchestrators/pr_orchestrator.py +237 -237
- tapps_agents/simple_mode/orchestrators/refactor_orchestrator.py +222 -222
- tapps_agents/simple_mode/orchestrators/requirements_tracer.py +262 -262
- tapps_agents/simple_mode/orchestrators/resume_orchestrator.py +210 -210
- tapps_agents/simple_mode/orchestrators/review_orchestrator.py +161 -161
- tapps_agents/simple_mode/orchestrators/test_orchestrator.py +82 -82
- tapps_agents/simple_mode/output_aggregator.py +340 -340
- tapps_agents/simple_mode/result_formatters.py +598 -598
- tapps_agents/simple_mode/step_dependencies.py +382 -382
- tapps_agents/simple_mode/step_results.py +276 -276
- tapps_agents/simple_mode/streaming.py +388 -388
- tapps_agents/simple_mode/variations.py +129 -129
- tapps_agents/simple_mode/visual_feedback.py +238 -238
- tapps_agents/simple_mode/zero_config.py +274 -274
- tapps_agents/suggestions/__init__.py +8 -8
- tapps_agents/suggestions/inline_suggester.py +52 -52
- tapps_agents/templates/__init__.py +8 -8
- tapps_agents/templates/microservice_generator.py +274 -274
- tapps_agents/utils/env_validator.py +291 -291
- tapps_agents/workflow/__init__.py +171 -171
- tapps_agents/workflow/acceptance_verifier.py +132 -132
- tapps_agents/workflow/agent_handlers/__init__.py +41 -41
- tapps_agents/workflow/agent_handlers/analyst_handler.py +75 -75
- tapps_agents/workflow/agent_handlers/architect_handler.py +107 -107
- tapps_agents/workflow/agent_handlers/base.py +84 -84
- tapps_agents/workflow/agent_handlers/debugger_handler.py +100 -100
- tapps_agents/workflow/agent_handlers/designer_handler.py +110 -110
- tapps_agents/workflow/agent_handlers/documenter_handler.py +94 -94
- tapps_agents/workflow/agent_handlers/implementer_handler.py +235 -235
- tapps_agents/workflow/agent_handlers/ops_handler.py +62 -62
- tapps_agents/workflow/agent_handlers/orchestrator_handler.py +43 -43
- tapps_agents/workflow/agent_handlers/planner_handler.py +98 -98
- tapps_agents/workflow/agent_handlers/registry.py +119 -119
- tapps_agents/workflow/agent_handlers/reviewer_handler.py +119 -119
- tapps_agents/workflow/agent_handlers/tester_handler.py +69 -69
- tapps_agents/workflow/analytics_accessor.py +337 -337
- tapps_agents/workflow/analytics_alerts.py +416 -416
- tapps_agents/workflow/analytics_dashboard_cursor.py +281 -281
- tapps_agents/workflow/analytics_dual_write.py +103 -103
- tapps_agents/workflow/analytics_integration.py +119 -119
- tapps_agents/workflow/analytics_query_parser.py +278 -278
- tapps_agents/workflow/analytics_visualizer.py +259 -259
- tapps_agents/workflow/artifact_helper.py +204 -204
- tapps_agents/workflow/audit_logger.py +263 -263
- tapps_agents/workflow/auto_execution_config.py +340 -340
- tapps_agents/workflow/auto_progression.py +586 -586
- tapps_agents/workflow/branch_cleanup.py +349 -349
- tapps_agents/workflow/checkpoint.py +256 -256
- tapps_agents/workflow/checkpoint_manager.py +178 -178
- tapps_agents/workflow/code_artifact.py +179 -179
- tapps_agents/workflow/common_enums.py +96 -96
- tapps_agents/workflow/confirmation_handler.py +130 -130
- tapps_agents/workflow/context_analyzer.py +222 -222
- tapps_agents/workflow/context_artifact.py +230 -230
- tapps_agents/workflow/cursor_chat.py +94 -94
- tapps_agents/workflow/cursor_executor.py +2337 -2196
- tapps_agents/workflow/cursor_skill_helper.py +516 -516
- tapps_agents/workflow/dependency_resolver.py +244 -244
- tapps_agents/workflow/design_artifact.py +156 -156
- tapps_agents/workflow/detector.py +751 -751
- tapps_agents/workflow/direct_execution_fallback.py +301 -301
- tapps_agents/workflow/docs_artifact.py +168 -168
- tapps_agents/workflow/enforcer.py +389 -389
- tapps_agents/workflow/enhancement_artifact.py +142 -142
- tapps_agents/workflow/error_recovery.py +806 -806
- tapps_agents/workflow/event_bus.py +183 -183
- tapps_agents/workflow/event_log.py +612 -612
- tapps_agents/workflow/events.py +63 -63
- tapps_agents/workflow/exceptions.py +43 -43
- tapps_agents/workflow/execution_graph.py +498 -498
- tapps_agents/workflow/execution_plan.py +126 -126
- tapps_agents/workflow/file_utils.py +186 -186
- tapps_agents/workflow/gate_evaluator.py +182 -182
- tapps_agents/workflow/gate_integration.py +200 -200
- tapps_agents/workflow/graph_visualizer.py +130 -130
- tapps_agents/workflow/health_checker.py +206 -206
- tapps_agents/workflow/logging_helper.py +243 -243
- tapps_agents/workflow/manifest.py +582 -582
- tapps_agents/workflow/marker_writer.py +250 -250
- tapps_agents/workflow/message_formatter.py +188 -188
- tapps_agents/workflow/messaging.py +325 -325
- tapps_agents/workflow/metadata_models.py +91 -91
- tapps_agents/workflow/metrics_integration.py +226 -226
- tapps_agents/workflow/migration_utils.py +116 -116
- tapps_agents/workflow/models.py +148 -111
- tapps_agents/workflow/nlp_config.py +198 -198
- tapps_agents/workflow/nlp_error_handler.py +207 -207
- tapps_agents/workflow/nlp_executor.py +163 -163
- tapps_agents/workflow/nlp_parser.py +528 -528
- tapps_agents/workflow/observability_dashboard.py +451 -451
- tapps_agents/workflow/observer.py +170 -170
- tapps_agents/workflow/ops_artifact.py +257 -257
- tapps_agents/workflow/output_passing.py +214 -214
- tapps_agents/workflow/parallel_executor.py +463 -463
- tapps_agents/workflow/planning_artifact.py +179 -179
- tapps_agents/workflow/preset_loader.py +285 -285
- tapps_agents/workflow/preset_recommender.py +270 -270
- tapps_agents/workflow/progress_logger.py +145 -145
- tapps_agents/workflow/progress_manager.py +303 -303
- tapps_agents/workflow/progress_monitor.py +186 -186
- tapps_agents/workflow/progress_updates.py +423 -423
- tapps_agents/workflow/quality_artifact.py +158 -158
- tapps_agents/workflow/quality_loopback.py +101 -101
- tapps_agents/workflow/recommender.py +387 -387
- tapps_agents/workflow/remediation_loop.py +166 -166
- tapps_agents/workflow/result_aggregator.py +300 -300
- tapps_agents/workflow/review_artifact.py +185 -185
- tapps_agents/workflow/schema_validator.py +522 -522
- tapps_agents/workflow/session_handoff.py +178 -178
- tapps_agents/workflow/skill_invoker.py +648 -648
- tapps_agents/workflow/state_manager.py +756 -756
- tapps_agents/workflow/state_persistence_config.py +331 -331
- tapps_agents/workflow/status_monitor.py +449 -449
- tapps_agents/workflow/step_checkpoint.py +314 -314
- tapps_agents/workflow/step_details.py +201 -201
- tapps_agents/workflow/story_models.py +147 -147
- tapps_agents/workflow/streaming.py +416 -416
- tapps_agents/workflow/suggestion_engine.py +552 -552
- tapps_agents/workflow/testing_artifact.py +186 -186
- tapps_agents/workflow/timeline.py +158 -158
- tapps_agents/workflow/token_integration.py +209 -209
- tapps_agents/workflow/validation.py +217 -217
- tapps_agents/workflow/visual_feedback.py +391 -391
- tapps_agents/workflow/workflow_chain.py +95 -95
- tapps_agents/workflow/workflow_summary.py +219 -219
- tapps_agents/workflow/worktree_manager.py +724 -724
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/METADATA +672 -672
- tapps_agents-3.6.0.dist-info/RECORD +758 -0
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/licenses/LICENSE +22 -22
- tapps_agents/health/checks/outcomes.backup_20260204_064058.py +0 -324
- tapps_agents/health/checks/outcomes.backup_20260204_064256.py +0 -324
- tapps_agents/health/checks/outcomes.backup_20260204_064600.py +0 -324
- tapps_agents-3.5.40.dist-info/RECORD +0 -760
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/WHEEL +0 -0
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/entry_points.txt +0 -0
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/top_level.txt +0 -0
|
@@ -1,207 +1,207 @@
|
|
|
1
|
-
# Secure Coding Practices
|
|
2
|
-
|
|
3
|
-
## General Principles
|
|
4
|
-
|
|
5
|
-
### Defense in Depth
|
|
6
|
-
Implement multiple layers of security controls. Never rely on a single security mechanism.
|
|
7
|
-
|
|
8
|
-
### Principle of Least Privilege
|
|
9
|
-
Grant only the minimum permissions necessary for a function to operate. Users, processes, and systems should operate with the least privilege required.
|
|
10
|
-
|
|
11
|
-
### Fail Securely
|
|
12
|
-
When a security control fails, the system should fail in a secure state (deny access rather than grant it).
|
|
13
|
-
|
|
14
|
-
### Secure by Default
|
|
15
|
-
Systems should be secure by default. Security should not require additional configuration.
|
|
16
|
-
|
|
17
|
-
### Separation of Duties
|
|
18
|
-
Critical operations should require multiple people or systems to complete.
|
|
19
|
-
|
|
20
|
-
## Input Validation
|
|
21
|
-
|
|
22
|
-
### Always Validate Input
|
|
23
|
-
- Validate all input at the boundary (where it enters the system)
|
|
24
|
-
- Use whitelist validation (allow only known good values) rather than blacklist
|
|
25
|
-
- Validate data type, length, format, and range
|
|
26
|
-
- Reject invalid input rather than sanitizing it
|
|
27
|
-
|
|
28
|
-
### Common Validation Rules
|
|
29
|
-
```python
|
|
30
|
-
# Good: Whitelist validation
|
|
31
|
-
ALLOWED_CHARS = set('abcdefghijklmnopqrstuvwxyz0123456789-')
|
|
32
|
-
if not all(c in ALLOWED_CHARS for c in username):
|
|
33
|
-
raise ValidationError("Invalid characters")
|
|
34
|
-
|
|
35
|
-
# Bad: Blacklist validation
|
|
36
|
-
if '<' in username or '>' in username:
|
|
37
|
-
username = username.replace('<', '').replace('>', '')
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
### Input Validation Checklist
|
|
41
|
-
- [ ] Validate data type (string, integer, etc.)
|
|
42
|
-
- [ ] Validate length (min/max)
|
|
43
|
-
- [ ] Validate format (regex, pattern matching)
|
|
44
|
-
- [ ] Validate range (numeric bounds)
|
|
45
|
-
- [ ] Validate business rules
|
|
46
|
-
- [ ] Validate against known malicious patterns
|
|
47
|
-
|
|
48
|
-
## Output Encoding
|
|
49
|
-
|
|
50
|
-
### Always Encode Output
|
|
51
|
-
- Encode data when outputting to prevent injection attacks
|
|
52
|
-
- Use context-appropriate encoding (HTML, URL, JavaScript, SQL)
|
|
53
|
-
- Never trust data from untrusted sources
|
|
54
|
-
|
|
55
|
-
### Encoding Contexts
|
|
56
|
-
- **HTML Context**: Use HTML entity encoding (`<`, `>`, `&`)
|
|
57
|
-
- **JavaScript Context**: Use Unicode escaping (`\u003C`)
|
|
58
|
-
- **URL Context**: Use URL encoding (`%3C`)
|
|
59
|
-
- **SQL Context**: Use parameterized queries (not encoding)
|
|
60
|
-
|
|
61
|
-
## Authentication and Session Management
|
|
62
|
-
|
|
63
|
-
### Password Security
|
|
64
|
-
- Require strong passwords (length, complexity)
|
|
65
|
-
- Hash passwords using strong algorithms (bcrypt, Argon2, PBKDF2)
|
|
66
|
-
- Never store passwords in plain text
|
|
67
|
-
- Implement password history to prevent reuse
|
|
68
|
-
- Use secure password reset mechanisms
|
|
69
|
-
|
|
70
|
-
### Session Management
|
|
71
|
-
- Generate strong, random session IDs
|
|
72
|
-
- Use secure, HttpOnly cookies for session storage
|
|
73
|
-
- Set appropriate session timeout
|
|
74
|
-
- Invalidate sessions on logout
|
|
75
|
-
- Regenerate session ID after login
|
|
76
|
-
- Use HTTPS for all session-related traffic
|
|
77
|
-
|
|
78
|
-
### Multi-Factor Authentication
|
|
79
|
-
- Implement MFA for sensitive operations
|
|
80
|
-
- Use time-based one-time passwords (TOTP)
|
|
81
|
-
- Support hardware security keys (FIDO2/WebAuthn)
|
|
82
|
-
|
|
83
|
-
## Access Control
|
|
84
|
-
|
|
85
|
-
### Implement Proper Authorization
|
|
86
|
-
- Check authorization on every request
|
|
87
|
-
- Use role-based access control (RBAC) or attribute-based access control (ABAC)
|
|
88
|
-
- Enforce access control at the application level, not just UI
|
|
89
|
-
- Use deny-by-default policies
|
|
90
|
-
|
|
91
|
-
### Common Mistakes
|
|
92
|
-
- Relying on client-side checks only
|
|
93
|
-
- Using predictable resource identifiers
|
|
94
|
-
- Not checking ownership of resources
|
|
95
|
-
- Elevating privileges unnecessarily
|
|
96
|
-
|
|
97
|
-
## Cryptography
|
|
98
|
-
|
|
99
|
-
### Use Strong Cryptography
|
|
100
|
-
- Use well-vetted cryptographic libraries
|
|
101
|
-
- Use appropriate key sizes (AES-256, RSA-2048+)
|
|
102
|
-
- Never implement custom cryptography
|
|
103
|
-
- Use cryptographically secure random number generators
|
|
104
|
-
- Rotate keys regularly
|
|
105
|
-
|
|
106
|
-
### Key Management
|
|
107
|
-
- Store keys securely (HSM, key management services)
|
|
108
|
-
- Never hardcode keys in source code
|
|
109
|
-
- Use environment variables or secure key stores
|
|
110
|
-
- Implement key rotation procedures
|
|
111
|
-
- Separate encryption keys from data
|
|
112
|
-
|
|
113
|
-
## Error Handling
|
|
114
|
-
|
|
115
|
-
### Secure Error Messages
|
|
116
|
-
- Never expose sensitive information in error messages
|
|
117
|
-
- Don't reveal system internals (stack traces, file paths)
|
|
118
|
-
- Log detailed errors server-side
|
|
119
|
-
- Return generic messages to users
|
|
120
|
-
- Use consistent error handling across the application
|
|
121
|
-
|
|
122
|
-
### Error Handling Best Practices
|
|
123
|
-
```python
|
|
124
|
-
# Good: Generic error message
|
|
125
|
-
try:
|
|
126
|
-
user = get_user(user_id)
|
|
127
|
-
except UserNotFound:
|
|
128
|
-
logger.error(f"User lookup failed for ID: {user_id}")
|
|
129
|
-
raise HTTPException(status_code=404, detail="User not found")
|
|
130
|
-
|
|
131
|
-
# Bad: Exposing internal details
|
|
132
|
-
try:
|
|
133
|
-
user = get_user(user_id)
|
|
134
|
-
except Exception as e:
|
|
135
|
-
raise HTTPException(status_code=500, detail=str(e)) # Exposes stack trace
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
## Logging and Monitoring
|
|
139
|
-
|
|
140
|
-
### Security Logging
|
|
141
|
-
- Log all authentication attempts (success and failure)
|
|
142
|
-
- Log all authorization failures
|
|
143
|
-
- Log all input validation failures
|
|
144
|
-
- Log all security-relevant events
|
|
145
|
-
- Include sufficient context (user, IP, timestamp, action)
|
|
146
|
-
|
|
147
|
-
### Log Protection
|
|
148
|
-
- Protect logs from tampering
|
|
149
|
-
- Use centralized logging
|
|
150
|
-
- Implement log rotation and retention policies
|
|
151
|
-
- Monitor logs for suspicious activity
|
|
152
|
-
- Alert on security events
|
|
153
|
-
|
|
154
|
-
## Dependency Management
|
|
155
|
-
|
|
156
|
-
### Secure Dependencies
|
|
157
|
-
- Keep all dependencies up to date
|
|
158
|
-
- Monitor for known vulnerabilities (npm audit, pip-audit, etc.)
|
|
159
|
-
- Use dependency pinning
|
|
160
|
-
- Remove unused dependencies
|
|
161
|
-
- Use only trusted sources for packages
|
|
162
|
-
|
|
163
|
-
### Dependency Scanning
|
|
164
|
-
- Automate vulnerability scanning in CI/CD
|
|
165
|
-
- Set up alerts for new vulnerabilities
|
|
166
|
-
- Review and update dependencies regularly
|
|
167
|
-
- Use tools like Snyk, Dependabot, or OWASP Dependency-Check
|
|
168
|
-
|
|
169
|
-
## Secure Configuration
|
|
170
|
-
|
|
171
|
-
### Configuration Security
|
|
172
|
-
- Use secure default configurations
|
|
173
|
-
- Remove or disable unnecessary features
|
|
174
|
-
- Use environment-specific configurations
|
|
175
|
-
- Never commit secrets to version control
|
|
176
|
-
- Use configuration management tools
|
|
177
|
-
|
|
178
|
-
### Secrets Management
|
|
179
|
-
- Never hardcode secrets
|
|
180
|
-
- Use secret management services (AWS Secrets Manager, HashiCorp Vault)
|
|
181
|
-
- Rotate secrets regularly
|
|
182
|
-
- Use different secrets for different environments
|
|
183
|
-
- Implement secret scanning in CI/CD
|
|
184
|
-
|
|
185
|
-
## API Security
|
|
186
|
-
|
|
187
|
-
### API Best Practices
|
|
188
|
-
- Use authentication for all API endpoints
|
|
189
|
-
- Implement rate limiting
|
|
190
|
-
- Validate all API input
|
|
191
|
-
- Use HTTPS for all API communication
|
|
192
|
-
- Implement proper CORS policies
|
|
193
|
-
- Version APIs appropriately
|
|
194
|
-
- Document security requirements
|
|
195
|
-
|
|
196
|
-
### API Authentication
|
|
197
|
-
- Use OAuth 2.0 or JWT for API authentication
|
|
198
|
-
- Implement token expiration and refresh
|
|
199
|
-
- Validate tokens on every request
|
|
200
|
-
- Use secure token storage
|
|
201
|
-
|
|
202
|
-
## References
|
|
203
|
-
|
|
204
|
-
- [OWASP Secure Coding Practices](https://owasp.org/www-project-secure-coding-practices-quick-reference-guide/)
|
|
205
|
-
- [CWE Top 25](https://cwe.mitre.org/top25/)
|
|
206
|
-
- [NIST Cybersecurity Framework](https://www.nist.gov/cyberframework)
|
|
207
|
-
|
|
1
|
+
# Secure Coding Practices
|
|
2
|
+
|
|
3
|
+
## General Principles
|
|
4
|
+
|
|
5
|
+
### Defense in Depth
|
|
6
|
+
Implement multiple layers of security controls. Never rely on a single security mechanism.
|
|
7
|
+
|
|
8
|
+
### Principle of Least Privilege
|
|
9
|
+
Grant only the minimum permissions necessary for a function to operate. Users, processes, and systems should operate with the least privilege required.
|
|
10
|
+
|
|
11
|
+
### Fail Securely
|
|
12
|
+
When a security control fails, the system should fail in a secure state (deny access rather than grant it).
|
|
13
|
+
|
|
14
|
+
### Secure by Default
|
|
15
|
+
Systems should be secure by default. Security should not require additional configuration.
|
|
16
|
+
|
|
17
|
+
### Separation of Duties
|
|
18
|
+
Critical operations should require multiple people or systems to complete.
|
|
19
|
+
|
|
20
|
+
## Input Validation
|
|
21
|
+
|
|
22
|
+
### Always Validate Input
|
|
23
|
+
- Validate all input at the boundary (where it enters the system)
|
|
24
|
+
- Use whitelist validation (allow only known good values) rather than blacklist
|
|
25
|
+
- Validate data type, length, format, and range
|
|
26
|
+
- Reject invalid input rather than sanitizing it
|
|
27
|
+
|
|
28
|
+
### Common Validation Rules
|
|
29
|
+
```python
|
|
30
|
+
# Good: Whitelist validation
|
|
31
|
+
ALLOWED_CHARS = set('abcdefghijklmnopqrstuvwxyz0123456789-')
|
|
32
|
+
if not all(c in ALLOWED_CHARS for c in username):
|
|
33
|
+
raise ValidationError("Invalid characters")
|
|
34
|
+
|
|
35
|
+
# Bad: Blacklist validation
|
|
36
|
+
if '<' in username or '>' in username:
|
|
37
|
+
username = username.replace('<', '').replace('>', '')
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Input Validation Checklist
|
|
41
|
+
- [ ] Validate data type (string, integer, etc.)
|
|
42
|
+
- [ ] Validate length (min/max)
|
|
43
|
+
- [ ] Validate format (regex, pattern matching)
|
|
44
|
+
- [ ] Validate range (numeric bounds)
|
|
45
|
+
- [ ] Validate business rules
|
|
46
|
+
- [ ] Validate against known malicious patterns
|
|
47
|
+
|
|
48
|
+
## Output Encoding
|
|
49
|
+
|
|
50
|
+
### Always Encode Output
|
|
51
|
+
- Encode data when outputting to prevent injection attacks
|
|
52
|
+
- Use context-appropriate encoding (HTML, URL, JavaScript, SQL)
|
|
53
|
+
- Never trust data from untrusted sources
|
|
54
|
+
|
|
55
|
+
### Encoding Contexts
|
|
56
|
+
- **HTML Context**: Use HTML entity encoding (`<`, `>`, `&`)
|
|
57
|
+
- **JavaScript Context**: Use Unicode escaping (`\u003C`)
|
|
58
|
+
- **URL Context**: Use URL encoding (`%3C`)
|
|
59
|
+
- **SQL Context**: Use parameterized queries (not encoding)
|
|
60
|
+
|
|
61
|
+
## Authentication and Session Management
|
|
62
|
+
|
|
63
|
+
### Password Security
|
|
64
|
+
- Require strong passwords (length, complexity)
|
|
65
|
+
- Hash passwords using strong algorithms (bcrypt, Argon2, PBKDF2)
|
|
66
|
+
- Never store passwords in plain text
|
|
67
|
+
- Implement password history to prevent reuse
|
|
68
|
+
- Use secure password reset mechanisms
|
|
69
|
+
|
|
70
|
+
### Session Management
|
|
71
|
+
- Generate strong, random session IDs
|
|
72
|
+
- Use secure, HttpOnly cookies for session storage
|
|
73
|
+
- Set appropriate session timeout
|
|
74
|
+
- Invalidate sessions on logout
|
|
75
|
+
- Regenerate session ID after login
|
|
76
|
+
- Use HTTPS for all session-related traffic
|
|
77
|
+
|
|
78
|
+
### Multi-Factor Authentication
|
|
79
|
+
- Implement MFA for sensitive operations
|
|
80
|
+
- Use time-based one-time passwords (TOTP)
|
|
81
|
+
- Support hardware security keys (FIDO2/WebAuthn)
|
|
82
|
+
|
|
83
|
+
## Access Control
|
|
84
|
+
|
|
85
|
+
### Implement Proper Authorization
|
|
86
|
+
- Check authorization on every request
|
|
87
|
+
- Use role-based access control (RBAC) or attribute-based access control (ABAC)
|
|
88
|
+
- Enforce access control at the application level, not just UI
|
|
89
|
+
- Use deny-by-default policies
|
|
90
|
+
|
|
91
|
+
### Common Mistakes
|
|
92
|
+
- Relying on client-side checks only
|
|
93
|
+
- Using predictable resource identifiers
|
|
94
|
+
- Not checking ownership of resources
|
|
95
|
+
- Elevating privileges unnecessarily
|
|
96
|
+
|
|
97
|
+
## Cryptography
|
|
98
|
+
|
|
99
|
+
### Use Strong Cryptography
|
|
100
|
+
- Use well-vetted cryptographic libraries
|
|
101
|
+
- Use appropriate key sizes (AES-256, RSA-2048+)
|
|
102
|
+
- Never implement custom cryptography
|
|
103
|
+
- Use cryptographically secure random number generators
|
|
104
|
+
- Rotate keys regularly
|
|
105
|
+
|
|
106
|
+
### Key Management
|
|
107
|
+
- Store keys securely (HSM, key management services)
|
|
108
|
+
- Never hardcode keys in source code
|
|
109
|
+
- Use environment variables or secure key stores
|
|
110
|
+
- Implement key rotation procedures
|
|
111
|
+
- Separate encryption keys from data
|
|
112
|
+
|
|
113
|
+
## Error Handling
|
|
114
|
+
|
|
115
|
+
### Secure Error Messages
|
|
116
|
+
- Never expose sensitive information in error messages
|
|
117
|
+
- Don't reveal system internals (stack traces, file paths)
|
|
118
|
+
- Log detailed errors server-side
|
|
119
|
+
- Return generic messages to users
|
|
120
|
+
- Use consistent error handling across the application
|
|
121
|
+
|
|
122
|
+
### Error Handling Best Practices
|
|
123
|
+
```python
|
|
124
|
+
# Good: Generic error message
|
|
125
|
+
try:
|
|
126
|
+
user = get_user(user_id)
|
|
127
|
+
except UserNotFound:
|
|
128
|
+
logger.error(f"User lookup failed for ID: {user_id}")
|
|
129
|
+
raise HTTPException(status_code=404, detail="User not found")
|
|
130
|
+
|
|
131
|
+
# Bad: Exposing internal details
|
|
132
|
+
try:
|
|
133
|
+
user = get_user(user_id)
|
|
134
|
+
except Exception as e:
|
|
135
|
+
raise HTTPException(status_code=500, detail=str(e)) # Exposes stack trace
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Logging and Monitoring
|
|
139
|
+
|
|
140
|
+
### Security Logging
|
|
141
|
+
- Log all authentication attempts (success and failure)
|
|
142
|
+
- Log all authorization failures
|
|
143
|
+
- Log all input validation failures
|
|
144
|
+
- Log all security-relevant events
|
|
145
|
+
- Include sufficient context (user, IP, timestamp, action)
|
|
146
|
+
|
|
147
|
+
### Log Protection
|
|
148
|
+
- Protect logs from tampering
|
|
149
|
+
- Use centralized logging
|
|
150
|
+
- Implement log rotation and retention policies
|
|
151
|
+
- Monitor logs for suspicious activity
|
|
152
|
+
- Alert on security events
|
|
153
|
+
|
|
154
|
+
## Dependency Management
|
|
155
|
+
|
|
156
|
+
### Secure Dependencies
|
|
157
|
+
- Keep all dependencies up to date
|
|
158
|
+
- Monitor for known vulnerabilities (npm audit, pip-audit, etc.)
|
|
159
|
+
- Use dependency pinning
|
|
160
|
+
- Remove unused dependencies
|
|
161
|
+
- Use only trusted sources for packages
|
|
162
|
+
|
|
163
|
+
### Dependency Scanning
|
|
164
|
+
- Automate vulnerability scanning in CI/CD
|
|
165
|
+
- Set up alerts for new vulnerabilities
|
|
166
|
+
- Review and update dependencies regularly
|
|
167
|
+
- Use tools like Snyk, Dependabot, or OWASP Dependency-Check
|
|
168
|
+
|
|
169
|
+
## Secure Configuration
|
|
170
|
+
|
|
171
|
+
### Configuration Security
|
|
172
|
+
- Use secure default configurations
|
|
173
|
+
- Remove or disable unnecessary features
|
|
174
|
+
- Use environment-specific configurations
|
|
175
|
+
- Never commit secrets to version control
|
|
176
|
+
- Use configuration management tools
|
|
177
|
+
|
|
178
|
+
### Secrets Management
|
|
179
|
+
- Never hardcode secrets
|
|
180
|
+
- Use secret management services (AWS Secrets Manager, HashiCorp Vault)
|
|
181
|
+
- Rotate secrets regularly
|
|
182
|
+
- Use different secrets for different environments
|
|
183
|
+
- Implement secret scanning in CI/CD
|
|
184
|
+
|
|
185
|
+
## API Security
|
|
186
|
+
|
|
187
|
+
### API Best Practices
|
|
188
|
+
- Use authentication for all API endpoints
|
|
189
|
+
- Implement rate limiting
|
|
190
|
+
- Validate all API input
|
|
191
|
+
- Use HTTPS for all API communication
|
|
192
|
+
- Implement proper CORS policies
|
|
193
|
+
- Version APIs appropriately
|
|
194
|
+
- Document security requirements
|
|
195
|
+
|
|
196
|
+
### API Authentication
|
|
197
|
+
- Use OAuth 2.0 or JWT for API authentication
|
|
198
|
+
- Implement token expiration and refresh
|
|
199
|
+
- Validate tokens on every request
|
|
200
|
+
- Use secure token storage
|
|
201
|
+
|
|
202
|
+
## References
|
|
203
|
+
|
|
204
|
+
- [OWASP Secure Coding Practices](https://owasp.org/www-project-secure-coding-practices-quick-reference-guide/)
|
|
205
|
+
- [CWE Top 25](https://cwe.mitre.org/top25/)
|
|
206
|
+
- [NIST Cybersecurity Framework](https://www.nist.gov/cyberframework)
|
|
207
|
+
|