@jwikman/bc-code-intelligence-mcp 1.5.7-dev.1
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.
- package/LICENSE +21 -0
- package/README.md +165 -0
- package/dist/cache/cache-manager.d.ts +95 -0
- package/dist/cache/cache-manager.d.ts.map +1 -0
- package/dist/cache/cache-manager.js +328 -0
- package/dist/cache/cache-manager.js.map +1 -0
- package/dist/cli/bc-code-intel-cli.d.ts +9 -0
- package/dist/cli/bc-code-intel-cli.d.ts.map +1 -0
- package/dist/cli/bc-code-intel-cli.js +440 -0
- package/dist/cli/bc-code-intel-cli.js.map +1 -0
- package/dist/config/config-loader.d.ts +28 -0
- package/dist/config/config-loader.d.ts.map +1 -0
- package/dist/config/config-loader.js +497 -0
- package/dist/config/config-loader.js.map +1 -0
- package/dist/config/config-validator.d.ts +84 -0
- package/dist/config/config-validator.d.ts.map +1 -0
- package/dist/config/config-validator.js +608 -0
- package/dist/config/config-validator.js.map +1 -0
- package/dist/config/test-config-loader.d.ts +10 -0
- package/dist/config/test-config-loader.d.ts.map +1 -0
- package/dist/config/test-config-loader.js +135 -0
- package/dist/config/test-config-loader.js.map +1 -0
- package/dist/config/test-enhanced-layer-service.d.ts +7 -0
- package/dist/config/test-enhanced-layer-service.d.ts.map +1 -0
- package/dist/config/test-enhanced-layer-service.js +104 -0
- package/dist/config/test-enhanced-layer-service.js.map +1 -0
- package/dist/config/test-git-layer.d.ts +7 -0
- package/dist/config/test-git-layer.d.ts.map +1 -0
- package/dist/config/test-git-layer.js +68 -0
- package/dist/config/test-git-layer.js.map +1 -0
- package/dist/dev/hot-reload.d.ts +91 -0
- package/dist/dev/hot-reload.d.ts.map +1 -0
- package/dist/dev/hot-reload.js +358 -0
- package/dist/dev/hot-reload.js.map +1 -0
- package/dist/index.d.ts +82 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1211 -0
- package/dist/index.js.map +1 -0
- package/dist/layers/base-layer.d.ts +133 -0
- package/dist/layers/base-layer.d.ts.map +1 -0
- package/dist/layers/base-layer.js +290 -0
- package/dist/layers/base-layer.js.map +1 -0
- package/dist/layers/embedded-layer.d.ts +130 -0
- package/dist/layers/embedded-layer.d.ts.map +1 -0
- package/dist/layers/embedded-layer.js +612 -0
- package/dist/layers/embedded-layer.js.map +1 -0
- package/dist/layers/git-layer.d.ts +77 -0
- package/dist/layers/git-layer.d.ts.map +1 -0
- package/dist/layers/git-layer.js +529 -0
- package/dist/layers/git-layer.js.map +1 -0
- package/dist/layers/index.d.ts +12 -0
- package/dist/layers/index.d.ts.map +1 -0
- package/dist/layers/index.js +11 -0
- package/dist/layers/index.js.map +1 -0
- package/dist/layers/layer-service.d.ts +135 -0
- package/dist/layers/layer-service.d.ts.map +1 -0
- package/dist/layers/layer-service.js +586 -0
- package/dist/layers/layer-service.js.map +1 -0
- package/dist/layers/project-layer.d.ts +58 -0
- package/dist/layers/project-layer.d.ts.map +1 -0
- package/dist/layers/project-layer.js +286 -0
- package/dist/layers/project-layer.js.map +1 -0
- package/dist/monitoring/production-monitor.d.ts +148 -0
- package/dist/monitoring/production-monitor.d.ts.map +1 -0
- package/dist/monitoring/production-monitor.js +463 -0
- package/dist/monitoring/production-monitor.js.map +1 -0
- package/dist/performance/performance-monitor.d.ts +99 -0
- package/dist/performance/performance-monitor.d.ts.map +1 -0
- package/dist/performance/performance-monitor.js +253 -0
- package/dist/performance/performance-monitor.js.map +1 -0
- package/dist/sdk/bc-code-intel-client.d.ts +175 -0
- package/dist/sdk/bc-code-intel-client.d.ts.map +1 -0
- package/dist/sdk/bc-code-intel-client.js +380 -0
- package/dist/sdk/bc-code-intel-client.js.map +1 -0
- package/dist/search/intelligent-search.d.ts +97 -0
- package/dist/search/intelligent-search.d.ts.map +1 -0
- package/dist/search/intelligent-search.js +358 -0
- package/dist/search/intelligent-search.js.map +1 -0
- package/dist/security/access-control.d.ts +110 -0
- package/dist/security/access-control.d.ts.map +1 -0
- package/dist/security/access-control.js +353 -0
- package/dist/security/access-control.js.map +1 -0
- package/dist/services/code-analysis-service.d.ts +72 -0
- package/dist/services/code-analysis-service.d.ts.map +1 -0
- package/dist/services/code-analysis-service.js +818 -0
- package/dist/services/code-analysis-service.js.map +1 -0
- package/dist/services/enhanced-prompt-service.d.ts +56 -0
- package/dist/services/enhanced-prompt-service.d.ts.map +1 -0
- package/dist/services/enhanced-prompt-service.js +165 -0
- package/dist/services/enhanced-prompt-service.js.map +1 -0
- package/dist/services/knowledge-service.d.ts +90 -0
- package/dist/services/knowledge-service.d.ts.map +1 -0
- package/dist/services/knowledge-service.js +342 -0
- package/dist/services/knowledge-service.js.map +1 -0
- package/dist/services/methodology-service.d.ts +91 -0
- package/dist/services/methodology-service.d.ts.map +1 -0
- package/dist/services/methodology-service.js +423 -0
- package/dist/services/methodology-service.js.map +1 -0
- package/dist/services/multi-content-layer-service.d.ts +198 -0
- package/dist/services/multi-content-layer-service.d.ts.map +1 -0
- package/dist/services/multi-content-layer-service.js +991 -0
- package/dist/services/multi-content-layer-service.js.map +1 -0
- package/dist/services/roleplay-engine.d.ts +161 -0
- package/dist/services/roleplay-engine.d.ts.map +1 -0
- package/dist/services/roleplay-engine.js +994 -0
- package/dist/services/roleplay-engine.js.map +1 -0
- package/dist/services/session-storage/file-storage.d.ts +30 -0
- package/dist/services/session-storage/file-storage.d.ts.map +1 -0
- package/dist/services/session-storage/file-storage.js +229 -0
- package/dist/services/session-storage/file-storage.js.map +1 -0
- package/dist/services/session-storage/in-memory-storage.d.ts +31 -0
- package/dist/services/session-storage/in-memory-storage.d.ts.map +1 -0
- package/dist/services/session-storage/in-memory-storage.js +142 -0
- package/dist/services/session-storage/in-memory-storage.js.map +1 -0
- package/dist/services/specialist-discovery.d.ts +98 -0
- package/dist/services/specialist-discovery.d.ts.map +1 -0
- package/dist/services/specialist-discovery.js +387 -0
- package/dist/services/specialist-discovery.js.map +1 -0
- package/dist/services/specialist-loader.d.ts +101 -0
- package/dist/services/specialist-loader.d.ts.map +1 -0
- package/dist/services/specialist-loader.js +256 -0
- package/dist/services/specialist-loader.js.map +1 -0
- package/dist/services/specialist-session-manager.d.ts +76 -0
- package/dist/services/specialist-session-manager.d.ts.map +1 -0
- package/dist/services/specialist-session-manager.js +255 -0
- package/dist/services/specialist-session-manager.js.map +1 -0
- package/dist/services/workflow-service.d.ts +146 -0
- package/dist/services/workflow-service.d.ts.map +1 -0
- package/dist/services/workflow-service.js +409 -0
- package/dist/services/workflow-service.js.map +1 -0
- package/dist/setup/post-install.d.ts +12 -0
- package/dist/setup/post-install.d.ts.map +1 -0
- package/dist/setup/post-install.js +81 -0
- package/dist/setup/post-install.js.map +1 -0
- package/dist/streamlined-handlers.d.ts +94 -0
- package/dist/streamlined-handlers.d.ts.map +1 -0
- package/dist/streamlined-handlers.js +665 -0
- package/dist/streamlined-handlers.js.map +1 -0
- package/dist/test-enhanced-mcp-server.d.ts +7 -0
- package/dist/test-enhanced-mcp-server.d.ts.map +1 -0
- package/dist/test-enhanced-mcp-server.js +177 -0
- package/dist/test-enhanced-mcp-server.js.map +1 -0
- package/dist/tools/config-diagnostic-tools.d.ts +234 -0
- package/dist/tools/config-diagnostic-tools.d.ts.map +1 -0
- package/dist/tools/config-diagnostic-tools.js +887 -0
- package/dist/tools/config-diagnostic-tools.js.map +1 -0
- package/dist/tools/core-tools.d.ts +26 -0
- package/dist/tools/core-tools.d.ts.map +1 -0
- package/dist/tools/core-tools.js +241 -0
- package/dist/tools/core-tools.js.map +1 -0
- package/dist/tools/handoff-tools.d.ts +37 -0
- package/dist/tools/handoff-tools.d.ts.map +1 -0
- package/dist/tools/handoff-tools.js +265 -0
- package/dist/tools/handoff-tools.js.map +1 -0
- package/dist/tools/index.d.ts +61 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +75 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/onboarding-tools.d.ts +43 -0
- package/dist/tools/onboarding-tools.d.ts.map +1 -0
- package/dist/tools/onboarding-tools.js +353 -0
- package/dist/tools/onboarding-tools.js.map +1 -0
- package/dist/tools/specialist-discovery-tools.d.ts +27 -0
- package/dist/tools/specialist-discovery-tools.d.ts.map +1 -0
- package/dist/tools/specialist-discovery-tools.js +275 -0
- package/dist/tools/specialist-discovery-tools.js.map +1 -0
- package/dist/tools/specialist-tools.d.ts +43 -0
- package/dist/tools/specialist-tools.d.ts.map +1 -0
- package/dist/tools/specialist-tools.js +372 -0
- package/dist/tools/specialist-tools.js.map +1 -0
- package/dist/tools/workspace-tools.d.ts +96 -0
- package/dist/tools/workspace-tools.d.ts.map +1 -0
- package/dist/tools/workspace-tools.js +188 -0
- package/dist/tools/workspace-tools.js.map +1 -0
- package/dist/types/bc-knowledge.d.ts +303 -0
- package/dist/types/bc-knowledge.d.ts.map +1 -0
- package/dist/types/bc-knowledge.js +69 -0
- package/dist/types/bc-knowledge.js.map +1 -0
- package/dist/types/config-types.d.ts +186 -0
- package/dist/types/config-types.d.ts.map +1 -0
- package/dist/types/config-types.js +109 -0
- package/dist/types/config-types.js.map +1 -0
- package/dist/types/enhanced-layer-types.d.ts +193 -0
- package/dist/types/enhanced-layer-types.d.ts.map +1 -0
- package/dist/types/enhanced-layer-types.js +9 -0
- package/dist/types/enhanced-layer-types.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/layer-types.d.ts +173 -0
- package/dist/types/layer-types.d.ts.map +1 -0
- package/dist/types/layer-types.js +27 -0
- package/dist/types/layer-types.js.map +1 -0
- package/dist/types/roleplay-types.d.ts +156 -0
- package/dist/types/roleplay-types.d.ts.map +1 -0
- package/dist/types/roleplay-types.js +8 -0
- package/dist/types/roleplay-types.js.map +1 -0
- package/dist/types/session-types.d.ts +127 -0
- package/dist/types/session-types.d.ts.map +1 -0
- package/dist/types/session-types.js +8 -0
- package/dist/types/session-types.js.map +1 -0
- package/dist/utils/path-utils.d.ts +5 -0
- package/dist/utils/path-utils.d.ts.map +1 -0
- package/dist/utils/path-utils.js +14 -0
- package/dist/utils/path-utils.js.map +1 -0
- package/dist/workflows/domain-workflows.d.ts +8 -0
- package/dist/workflows/domain-workflows.d.ts.map +1 -0
- package/dist/workflows/domain-workflows.js +360 -0
- package/dist/workflows/domain-workflows.js.map +1 -0
- package/embedded-knowledge/.github/ISSUE_TEMPLATE/bug-report.md +24 -0
- package/embedded-knowledge/.github/ISSUE_TEMPLATE/content-improvement.md +24 -0
- package/embedded-knowledge/.github/ISSUE_TEMPLATE/knowledge-request.md +30 -0
- package/embedded-knowledge/AGENTS.md +178 -0
- package/embedded-knowledge/CONTRIBUTING.md +58 -0
- package/embedded-knowledge/LICENSE +21 -0
- package/embedded-knowledge/README.md +32 -0
- package/embedded-knowledge/domains/alex-architect/api-delegate-operation-pattern.md +90 -0
- package/embedded-knowledge/domains/alex-architect/api-fieldset-registration-pattern.md +113 -0
- package/embedded-knowledge/domains/alex-architect/api-interface-design-patterns.md +101 -0
- package/embedded-knowledge/domains/alex-architect/api-page-development-patterns.md +87 -0
- package/embedded-knowledge/domains/alex-architect/complex-facade-patterns.md +155 -0
- package/embedded-knowledge/domains/alex-architect/delegating-to-github-copilot-agents.md +371 -0
- package/embedded-knowledge/domains/alex-architect/facade-pattern-al-implementation.md +138 -0
- package/embedded-knowledge/domains/alex-architect/facade-pattern-external-api.md +79 -0
- package/embedded-knowledge/domains/alex-architect/object-id-ninja-integration.md +281 -0
- package/embedded-knowledge/domains/alex-architect/recommend-object-id-ninja.md +248 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-delegate-operation.md +280 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-fieldset-registration.md +200 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-interface-design.md +565 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-page-implementation.md +665 -0
- package/embedded-knowledge/domains/alex-architect/samples/complex-facade-patterns.md +325 -0
- package/embedded-knowledge/domains/alex-architect/samples/facade-pattern-al.md +696 -0
- package/embedded-knowledge/domains/alex-architect/samples/facade-pattern.md +320 -0
- package/embedded-knowledge/domains/alex-architect/samples/subscriber-organization.md +102 -0
- package/embedded-knowledge/domains/alex-architect/samples/systemid-integration.md +433 -0
- package/embedded-knowledge/domains/alex-architect/samples/testability-design-patterns.md +223 -0
- package/embedded-knowledge/domains/alex-architect/subscriber-codeunit-size-optimization.md +66 -0
- package/embedded-knowledge/domains/alex-architect/systemid-integration.md +115 -0
- package/embedded-knowledge/domains/alex-architect/testability-design-patterns.md +77 -0
- package/embedded-knowledge/domains/casey-copilot/long-running-session-instructions.md +263 -0
- package/embedded-knowledge/domains/casey-copilot/samples/long-running-session-instructions.md +323 -0
- package/embedded-knowledge/domains/chris-config/configuration-file-discovery.md +846 -0
- package/embedded-knowledge/domains/chris-config/configuration-file-formats.md +595 -0
- package/embedded-knowledge/domains/chris-config/content-types-structure.md +421 -0
- package/embedded-knowledge/domains/chris-config/knowledge-content-creation.md +437 -0
- package/embedded-knowledge/domains/chris-config/layer-system-fundamentals.md +257 -0
- package/embedded-knowledge/domains/chris-config/multi-team-layer-configuration.md +302 -0
- package/embedded-knowledge/domains/chris-config/workspace-detection-solutions.md +336 -0
- package/embedded-knowledge/domains/dean-debug/bc-telemetry-buddy-integration.md +453 -0
- package/embedded-knowledge/domains/dean-debug/bc24-no-series-conversion-guide.md +360 -0
- package/embedded-knowledge/domains/dean-debug/case-statement-performance-best-practices.md +86 -0
- package/embedded-knowledge/domains/dean-debug/compound-statements-debugging.md +96 -0
- package/embedded-knowledge/domains/dean-debug/custom-dimensions-best-practices.md +70 -0
- package/embedded-knowledge/domains/dean-debug/custom-telemetry-implementation.md +84 -0
- package/embedded-knowledge/domains/dean-debug/deleteall-performance-tradeoff.md +93 -0
- package/embedded-knowledge/domains/dean-debug/deleteall-sql-performance.md +73 -0
- package/embedded-knowledge/domains/dean-debug/extension-telemetry-isolation.md +78 -0
- package/embedded-knowledge/domains/dean-debug/maintainsiftindex-property-behavior.md +79 -0
- package/embedded-knowledge/domains/dean-debug/no-series-implementation-patterns.md +87 -0
- package/embedded-knowledge/domains/dean-debug/no-series-module-patterns-bc24.md +209 -0
- package/embedded-knowledge/domains/dean-debug/no-series-validation-module-bc24.md +246 -0
- package/embedded-knowledge/domains/dean-debug/no-series-validation-patterns.md +107 -0
- package/embedded-knowledge/domains/dean-debug/odata-query-optimization.md +105 -0
- package/embedded-knowledge/domains/dean-debug/recommend-bc-telemetry-buddy.md +160 -0
- package/embedded-knowledge/domains/dean-debug/samples/bc24-no-series-conversion.md +186 -0
- package/embedded-knowledge/domains/dean-debug/samples/case-performance-optimization.md +60 -0
- package/embedded-knowledge/domains/dean-debug/samples/compound-statements-debugging.md +139 -0
- package/embedded-knowledge/domains/dean-debug/samples/custom-dimensions.md +190 -0
- package/embedded-knowledge/domains/dean-debug/samples/custom-telemetry.md +516 -0
- package/embedded-knowledge/domains/dean-debug/samples/deleteall-performance.md +298 -0
- package/embedded-knowledge/domains/dean-debug/samples/error-correlation.md +324 -0
- package/embedded-knowledge/domains/dean-debug/samples/extension-isolation.md +344 -0
- package/embedded-knowledge/domains/dean-debug/samples/logmessage-methods.md +137 -0
- package/embedded-knowledge/domains/dean-debug/samples/maintainsiftindex-examples.md +340 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-implementation.md +810 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-module-bc24.md +86 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-validation-module-bc24.md +110 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-validation.md +758 -0
- package/embedded-knowledge/domains/dean-debug/samples/odata-query-optimization.md +665 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-case.md +316 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-filters.md +223 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-filter-exclusion.md +149 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-optimization.md +412 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-performance.md +211 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-primary-key.md +155 -0
- package/embedded-knowledge/domains/dean-debug/samples/sift-technology-fundamentals.md +475 -0
- package/embedded-knowledge/domains/dean-debug/samples/singleinstance-subscribers.md +238 -0
- package/embedded-knowledge/domains/dean-debug/samples/table-event-batching.md +97 -0
- package/embedded-knowledge/domains/dean-debug/samples/table-key-requirements.md +666 -0
- package/embedded-knowledge/domains/dean-debug/samples/telemetry-performance.md +319 -0
- package/embedded-knowledge/domains/dean-debug/samples/verbosity-strategy.md +236 -0
- package/embedded-knowledge/domains/dean-debug/session-logmessage-methods.md +59 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-filter-field-exclusion.md +67 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-performance-impact.md +70 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-performance-optimization.md +90 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-case-statements.md +87 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-filters.md +70 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-primary-key-optimization.md +74 -0
- package/embedded-knowledge/domains/dean-debug/sift-technology-fundamentals.md +81 -0
- package/embedded-knowledge/domains/dean-debug/subscriber-singleinstance-performance.md +56 -0
- package/embedded-knowledge/domains/dean-debug/table-event-batch-operation-impact.md +66 -0
- package/embedded-knowledge/domains/dean-debug/table-key-requirements.md +79 -0
- package/embedded-knowledge/domains/dean-debug/telemetry-error-correlation.md +78 -0
- package/embedded-knowledge/domains/dean-debug/telemetry-performance-considerations.md +83 -0
- package/embedded-knowledge/domains/dean-debug/telemetry-verbosity-strategy.md +76 -0
- package/embedded-knowledge/domains/dean-debug/testfield-performance.md +104 -0
- package/embedded-knowledge/domains/eva-errors/codeunit-run-pattern.md +159 -0
- package/embedded-knowledge/domains/eva-errors/fielderror-default-messages.md +145 -0
- package/embedded-knowledge/domains/eva-errors/fielderror-message-construction.md +104 -0
- package/embedded-knowledge/domains/eva-errors/fielderror-method-syntax.md +114 -0
- package/embedded-knowledge/domains/eva-errors/samples/codeunit-run-pattern.md +239 -0
- package/embedded-knowledge/domains/eva-errors/samples/fielderror-default-messages.md +356 -0
- package/embedded-knowledge/domains/eva-errors/samples/fielderror-syntax.md +256 -0
- package/embedded-knowledge/domains/eva-errors/samples/table-safety-validation-patterns.md +101 -0
- package/embedded-knowledge/domains/eva-errors/samples/testfield-error-handling.md +108 -0
- package/embedded-knowledge/domains/eva-errors/samples/try-function-usage.md +195 -0
- package/embedded-knowledge/domains/eva-errors/testfield-error-handling.md +80 -0
- package/embedded-knowledge/domains/eva-errors/try-function-usage.md +129 -0
- package/embedded-knowledge/domains/jordan-bridge/al-event-subscriber-architecture.md +98 -0
- package/embedded-knowledge/domains/jordan-bridge/automatic-registration.md +123 -0
- package/embedded-knowledge/domains/jordan-bridge/business-process-template-patterns.md +96 -0
- package/embedded-knowledge/domains/jordan-bridge/error-response-patterns.md +115 -0
- package/embedded-knowledge/domains/jordan-bridge/etag-implementation.md +115 -0
- package/embedded-knowledge/domains/jordan-bridge/field-control-selection.md +114 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/al-event-subscriber-architecture.md +395 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/api-error-responses.md +479 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/api-field-control.md +548 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/api-url-naming.md +287 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/business-process-templates.md +434 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/etag-implementation.md +508 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/task-scheduler-pattern.md +615 -0
- package/embedded-knowledge/domains/jordan-bridge/task-scheduler-pattern-implementation.md +144 -0
- package/embedded-knowledge/domains/jordan-bridge/url-structure-naming-patterns.md +96 -0
- package/embedded-knowledge/domains/maya-mentor/case-multiple-conditions-ranges.md +124 -0
- package/embedded-knowledge/domains/maya-mentor/case-statement-syntax-structure.md +84 -0
- package/embedded-knowledge/domains/maya-mentor/fielderror-syntax-usage.md +75 -0
- package/embedded-knowledge/domains/maya-mentor/fielderror-vs-testfield.md +96 -0
- package/embedded-knowledge/domains/maya-mentor/samples/case-statement-multiple-conditions.md +385 -0
- package/embedded-knowledge/domains/maya-mentor/samples/case-statement-syntax-structure.md +72 -0
- package/embedded-knowledge/domains/maya-mentor/samples/fielderror-syntax-usage.md +48 -0
- package/embedded-knowledge/domains/maya-mentor/samples/testfield-basic-syntax.md +49 -0
- package/embedded-knowledge/domains/maya-mentor/testfield-basic-syntax.md +67 -0
- package/embedded-knowledge/domains/morgan-market/partner-readiness-analysis.md +201 -0
- package/embedded-knowledge/domains/morgan-market/samples/partner-readiness-checklist.md +288 -0
- package/embedded-knowledge/domains/parker-pragmatic/README.md +39 -0
- package/embedded-knowledge/domains/parker-pragmatic/proposal-workflows/creating-effective-proposals.md +583 -0
- package/embedded-knowledge/domains/parker-pragmatic/trust-building/working-with-ai-skeptics.md +587 -0
- package/embedded-knowledge/domains/quinn-tester/fielderror-validation-patterns.md +119 -0
- package/embedded-knowledge/domains/quinn-tester/isolation-testing-patterns.md +82 -0
- package/embedded-knowledge/domains/quinn-tester/rule-execution.md +123 -0
- package/embedded-knowledge/domains/quinn-tester/samples/case-error-handling.md +64 -0
- package/embedded-knowledge/domains/quinn-tester/samples/fielderror-message-construction.md +60 -0
- package/embedded-knowledge/domains/quinn-tester/samples/fielderror-validation-patterns.md +83 -0
- package/embedded-knowledge/domains/quinn-tester/samples/isolation-testing-patterns.md +424 -0
- package/embedded-knowledge/domains/quinn-tester/samples/rule-execution.md +716 -0
- package/embedded-knowledge/domains/quinn-tester/samples/table-safety-validation-patterns.md +101 -0
- package/embedded-knowledge/domains/quinn-tester/samples/temporary-table-operation-validation.md +91 -0
- package/embedded-knowledge/domains/quinn-tester/table-safety-validation-patterns.md +79 -0
- package/embedded-knowledge/domains/quinn-tester/temporary-table-operation-validation.md +79 -0
- package/embedded-knowledge/domains/roger-reviewer/al-begin-end-block-structure.md +89 -0
- package/embedded-knowledge/domains/roger-reviewer/al-binary-operator-spacing.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-blank-line-organization.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-case-action-formatting.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-code-spacing-conventions.md +81 -0
- package/embedded-knowledge/domains/roger-reviewer/al-comment-spacing-standards.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-end-else-pairing.md +75 -0
- package/embedded-knowledge/domains/roger-reviewer/al-keyword-indentation-rules.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-line-start-keyword-positioning.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-separate-if-else-formatting.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-standard-abbreviations.md +96 -0
- package/embedded-knowledge/domains/roger-reviewer/al-statement-per-line-rule.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-unnecessary-else-elimination.md +86 -0
- package/embedded-knowledge/domains/roger-reviewer/al-variable-declaration-order.md +90 -0
- package/embedded-knowledge/domains/roger-reviewer/al-variable-naming-conventions.md +82 -0
- package/embedded-knowledge/domains/roger-reviewer/begin-block-statement-clarity.md +78 -0
- package/embedded-knowledge/domains/roger-reviewer/begin-end-positioning-patterns.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/binary-operator-line-positioning.md +78 -0
- package/embedded-knowledge/domains/roger-reviewer/boolean-expression-simplification-al.md +100 -0
- package/embedded-knowledge/domains/roger-reviewer/case-statement-error-handling-troubleshooting.md +115 -0
- package/embedded-knowledge/domains/roger-reviewer/compound-statement-readability.md +124 -0
- package/embedded-knowledge/domains/roger-reviewer/lonely-repeat-statement-pattern.md +110 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-begin-end-blocks.md +438 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-binary-operator-spacing.md +255 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-comment-spacing-standards.md +209 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-keyword-indentation-rules.md +218 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-line-start-keyword-positioning.md +218 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-separate-if-else-formatting.md +280 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-statement-per-line-rule.md +188 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-unnecessary-else-elimination.md +245 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-variable-declaration-order.md +244 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/begin-end-positioning.md +278 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/boolean-simplification-examples.md +484 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/case-error-handling.md +64 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/compound-statement-readability.md +107 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/lonely-repeat-examples.md +280 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/testability-code-smells.md +256 -0
- package/embedded-knowledge/domains/roger-reviewer/testability-code-smells.md +67 -0
- package/embedded-knowledge/domains/sam-coder/al-formatting-consistency-patterns.md +75 -0
- package/embedded-knowledge/domains/sam-coder/al-line-comment-formatting.md +67 -0
- package/embedded-knowledge/domains/sam-coder/al-lonely-repeat-pattern.md +76 -0
- package/embedded-knowledge/domains/sam-coder/al-named-parameter-pattern.md +98 -0
- package/embedded-knowledge/domains/sam-coder/al-object-navigation-shortcuts.md +128 -0
- package/embedded-knowledge/domains/sam-coder/al-readability-optimization.md +75 -0
- package/embedded-knowledge/domains/sam-coder/al-record-find-early-exit.md +95 -0
- package/embedded-knowledge/domains/sam-coder/command-queue-pattern-al.md +141 -0
- package/embedded-knowledge/domains/sam-coder/deleteall-alternative-implementation.md +91 -0
- package/embedded-knowledge/domains/sam-coder/deleteall-method-usage.md +118 -0
- package/embedded-knowledge/domains/sam-coder/deleteall-trigger-execution.md +111 -0
- package/embedded-knowledge/domains/sam-coder/event-bridge-pattern-al.md +113 -0
- package/embedded-knowledge/domains/sam-coder/event-payload-design-patterns.md +127 -0
- package/embedded-knowledge/domains/sam-coder/generic-method-patterns-al.md +141 -0
- package/embedded-knowledge/domains/sam-coder/manual-binding-conditional-subscribers.md +66 -0
- package/embedded-knowledge/domains/sam-coder/nested-compound-best-practices.md +96 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-blank-line-organization.md +161 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-case-action-formatting.md +177 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-lonely-repeat-pattern.md +239 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-named-parameter-pattern.md +346 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-record-find-early-exit.md +298 -0
- package/embedded-knowledge/domains/sam-coder/samples/command-queue-pattern.md +677 -0
- package/embedded-knowledge/domains/sam-coder/samples/deleteall-alternative-implementation.md +117 -0
- package/embedded-knowledge/domains/sam-coder/samples/deleteall-triggers.md +75 -0
- package/embedded-knowledge/domains/sam-coder/samples/deleteall-usage.md +169 -0
- package/embedded-knowledge/domains/sam-coder/samples/event-bridge-pattern.md +399 -0
- package/embedded-knowledge/domains/sam-coder/samples/event-payload-design.md +356 -0
- package/embedded-knowledge/domains/sam-coder/samples/generic-method-patterns.md +889 -0
- package/embedded-knowledge/domains/sam-coder/samples/manual-binding.md +84 -0
- package/embedded-knowledge/domains/sam-coder/samples/nested-compound-best-practices.md +127 -0
- package/embedded-knowledge/domains/sam-coder/samples/single-to-compound-conversion.md +89 -0
- package/embedded-knowledge/domains/sam-coder/samples/template-method-pattern.md +516 -0
- package/embedded-knowledge/domains/sam-coder/samples/testfield-patterns.md +61 -0
- package/embedded-knowledge/domains/sam-coder/samples/type-safe-operations.md +427 -0
- package/embedded-knowledge/domains/sam-coder/single-to-compound-conversion.md +122 -0
- package/embedded-knowledge/domains/sam-coder/template-method-pattern-al.md +96 -0
- package/embedded-knowledge/domains/sam-coder/testfield-patterns.md +101 -0
- package/embedded-knowledge/domains/sam-coder/type-safe-operations-al.md +149 -0
- package/embedded-knowledge/domains/sam-coder/vs-code-al-keyboard-shortcuts.md +107 -0
- package/embedded-knowledge/domains/seth-security/al-temporary-table-safety.md +95 -0
- package/embedded-knowledge/domains/seth-security/api-permission-model.md +115 -0
- package/embedded-knowledge/domains/seth-security/istemporary-safeguard-pattern.md +78 -0
- package/embedded-knowledge/domains/seth-security/samples/al-temporary-table-safety.md +373 -0
- package/embedded-knowledge/domains/seth-security/samples/api-permission-model.md +308 -0
- package/embedded-knowledge/domains/shared/al-file-naming-conventions.md +146 -0
- package/embedded-knowledge/domains/taylor-docs/al-xml-documentation-structure.md +79 -0
- package/embedded-knowledge/domains/uma-ux/bc-action-shortcuts-syntax.md +78 -0
- package/embedded-knowledge/domains/uma-ux/shortcut-key-user-experience-design.md +81 -0
- package/embedded-knowledge/indexes/bc-version-matrix.json +188 -0
- package/embedded-knowledge/indexes/domain-catalog.json +106 -0
- package/embedded-knowledge/indexes/tags/abbreviations.json +1 -0
- package/embedded-knowledge/indexes/tags/abstraction.json +1 -0
- package/embedded-knowledge/indexes/tags/access-control.json +1 -0
- package/embedded-knowledge/indexes/tags/accessibility.json +1 -0
- package/embedded-knowledge/indexes/tags/actions.json +1 -0
- package/embedded-knowledge/indexes/tags/advanced-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/advanced.json +1 -0
- package/embedded-knowledge/indexes/tags/al-extension.json +1 -0
- package/embedded-knowledge/indexes/tags/al-generics.json +1 -0
- package/embedded-knowledge/indexes/tags/al-objects.json +1 -0
- package/embedded-knowledge/indexes/tags/al-syntax.json +1 -0
- package/embedded-knowledge/indexes/tags/algorithm-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/alternatives.json +1 -0
- package/embedded-knowledge/indexes/tags/analytics.json +1 -0
- package/embedded-knowledge/indexes/tags/api-delegates.json +1 -0
- package/embedded-knowledge/indexes/tags/api-design.json +1 -0
- package/embedded-knowledge/indexes/tags/api-documentation.json +1 -0
- package/embedded-knowledge/indexes/tags/api-endpoints.json +1 -0
- package/embedded-knowledge/indexes/tags/api-extensibility.json +1 -0
- package/embedded-knowledge/indexes/tags/api-fieldsets.json +1 -0
- package/embedded-knowledge/indexes/tags/api-integration.json +1 -0
- package/embedded-knowledge/indexes/tags/api-interfaces.json +1 -0
- package/embedded-knowledge/indexes/tags/api-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/api-pages.json +1 -0
- package/embedded-knowledge/indexes/tags/api-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/api-permissions.json +1 -0
- package/embedded-knowledge/indexes/tags/api-responses.json +1 -0
- package/embedded-knowledge/indexes/tags/api-simplification.json +1 -0
- package/embedded-knowledge/indexes/tags/api.json +1 -0
- package/embedded-knowledge/indexes/tags/architecture.json +1 -0
- package/embedded-knowledge/indexes/tags/async-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/async-processing.json +1 -0
- package/embedded-knowledge/indexes/tags/automatic-registration.json +1 -0
- package/embedded-knowledge/indexes/tags/batch-operations.json +1 -0
- package/embedded-knowledge/indexes/tags/bc24-migration.json +1 -0
- package/embedded-knowledge/indexes/tags/begin-blocks.json +1 -0
- package/embedded-knowledge/indexes/tags/begin-end.json +1 -0
- package/embedded-knowledge/indexes/tags/behavioral-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/best-practices.json +1 -0
- package/embedded-knowledge/indexes/tags/binding.json +1 -0
- package/embedded-knowledge/indexes/tags/block-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/blocks.json +1 -0
- package/embedded-knowledge/indexes/tags/boolean-expressions.json +1 -0
- package/embedded-knowledge/indexes/tags/branching.json +1 -0
- package/embedded-knowledge/indexes/tags/breaking-changes.json +1 -0
- package/embedded-knowledge/indexes/tags/breakpoints.json +1 -0
- package/embedded-knowledge/indexes/tags/business-foundation.json +1 -0
- package/embedded-knowledge/indexes/tags/business-infrastructure.json +1 -0
- package/embedded-knowledge/indexes/tags/business-process.json +1 -0
- package/embedded-knowledge/indexes/tags/business-rules.json +1 -0
- package/embedded-knowledge/indexes/tags/caching.json +1 -0
- package/embedded-knowledge/indexes/tags/case-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/case.json +1 -0
- package/embedded-knowledge/indexes/tags/code-analysis.json +1 -0
- package/embedded-knowledge/indexes/tags/code-clarity.json +1 -0
- package/embedded-knowledge/indexes/tags/code-comprehension.json +1 -0
- package/embedded-knowledge/indexes/tags/code-conversion.json +1 -0
- package/embedded-knowledge/indexes/tags/code-formatting.json +1 -0
- package/embedded-knowledge/indexes/tags/code-organization.json +1 -0
- package/embedded-knowledge/indexes/tags/code-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/code-quality.json +1 -0
- package/embedded-knowledge/indexes/tags/code-reuse.json +1 -0
- package/embedded-knowledge/indexes/tags/code-simplification.json +1 -0
- package/embedded-knowledge/indexes/tags/code-standards.json +1 -0
- package/embedded-knowledge/indexes/tags/code-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/code-style.json +1 -0
- package/embedded-knowledge/indexes/tags/codeunit-design.json +1 -0
- package/embedded-knowledge/indexes/tags/command-queue.json +1 -0
- package/embedded-knowledge/indexes/tags/comments.json +1 -0
- package/embedded-knowledge/indexes/tags/compile-time-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/complex-facade.json +1 -0
- package/embedded-knowledge/indexes/tags/complexity-hiding.json +1 -0
- package/embedded-knowledge/indexes/tags/complexity-management.json +1 -0
- package/embedded-knowledge/indexes/tags/compound-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/concurrency.json +1 -0
- package/embedded-knowledge/indexes/tags/conditional-logic.json +1 -0
- package/embedded-knowledge/indexes/tags/conditional.json +1 -0
- package/embedded-knowledge/indexes/tags/conflict-resolution.json +1 -0
- package/embedded-knowledge/indexes/tags/consistency.json +1 -0
- package/embedded-knowledge/indexes/tags/contract-design.json +1 -0
- package/embedded-knowledge/indexes/tags/control-flow.json +1 -0
- package/embedded-knowledge/indexes/tags/conversion-guide.json +1 -0
- package/embedded-knowledge/indexes/tags/correlation.json +1 -0
- package/embedded-knowledge/indexes/tags/custom-messages.json +1 -0
- package/embedded-knowledge/indexes/tags/data-access.json +1 -0
- package/embedded-knowledge/indexes/tags/data-exposure.json +1 -0
- package/embedded-knowledge/indexes/tags/data-integrity.json +1 -0
- package/embedded-knowledge/indexes/tags/data-loading.json +1 -0
- package/embedded-knowledge/indexes/tags/data-manipulation.json +1 -0
- package/embedded-knowledge/indexes/tags/data-modeling.json +1 -0
- package/embedded-knowledge/indexes/tags/data-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/data-protection.json +1 -0
- package/embedded-knowledge/indexes/tags/data-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/database.json +1 -0
- package/embedded-knowledge/indexes/tags/debugging.json +1 -0
- package/embedded-knowledge/indexes/tags/decision-making.json +1 -0
- package/embedded-knowledge/indexes/tags/declaration.json +1 -0
- package/embedded-knowledge/indexes/tags/default-messages.json +1 -0
- package/embedded-knowledge/indexes/tags/defensive-programming.json +1 -0
- package/embedded-knowledge/indexes/tags/deleteall.json +1 -0
- package/embedded-knowledge/indexes/tags/dependencies.json +1 -0
- package/embedded-knowledge/indexes/tags/deployment.json +1 -0
- package/embedded-knowledge/indexes/tags/developer-productivity.json +1 -0
- package/embedded-knowledge/indexes/tags/development-workflow.json +1 -0
- package/embedded-knowledge/indexes/tags/diagnostics.json +1 -0
- package/embedded-knowledge/indexes/tags/dimensions.json +1 -0
- package/embedded-knowledge/indexes/tags/documentation.json +1 -0
- package/embedded-knowledge/indexes/tags/early-exit.json +1 -0
- package/embedded-knowledge/indexes/tags/else-clauses.json +1 -0
- package/embedded-knowledge/indexes/tags/end-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/enterprise-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/entity-relationships.json +1 -0
- package/embedded-knowledge/indexes/tags/error-handling.json +1 -0
- package/embedded-knowledge/indexes/tags/error-messages.json +1 -0
- package/embedded-knowledge/indexes/tags/error-prevention.json +1 -0
- package/embedded-knowledge/indexes/tags/error-text.json +1 -0
- package/embedded-knowledge/indexes/tags/etag.json +1 -0
- package/embedded-knowledge/indexes/tags/event-bridge.json +1 -0
- package/embedded-knowledge/indexes/tags/event-payload.json +1 -0
- package/embedded-knowledge/indexes/tags/event-routing.json +1 -0
- package/embedded-knowledge/indexes/tags/events.json +1 -0
- package/embedded-knowledge/indexes/tags/execution-flow.json +1 -0
- package/embedded-knowledge/indexes/tags/expressions.json +1 -0
- package/embedded-knowledge/indexes/tags/extensibility.json +1 -0
- package/embedded-knowledge/indexes/tags/extensions.json +1 -0
- package/embedded-knowledge/indexes/tags/facade-composition.json +1 -0
- package/embedded-knowledge/indexes/tags/facade-pattern.json +1 -0
- package/embedded-knowledge/indexes/tags/field-control.json +1 -0
- package/embedded-knowledge/indexes/tags/field-exclusion.json +1 -0
- package/embedded-knowledge/indexes/tags/field-registration.json +1 -0
- package/embedded-knowledge/indexes/tags/field-state.json +1 -0
- package/embedded-knowledge/indexes/tags/field-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/fielderror.json +1 -0
- package/embedded-knowledge/indexes/tags/fields.json +1 -0
- package/embedded-knowledge/indexes/tags/filtering.json +1 -0
- package/embedded-knowledge/indexes/tags/filters.json +1 -0
- package/embedded-knowledge/indexes/tags/formatting.json +1 -0
- package/embedded-knowledge/indexes/tags/generic-methods.json +1 -0
- package/embedded-knowledge/indexes/tags/http-status.json +1 -0
- package/embedded-knowledge/indexes/tags/if-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/implementation.json +1 -0
- package/embedded-knowledge/indexes/tags/indentation.json +1 -0
- package/embedded-knowledge/indexes/tags/index-summary.json +277 -0
- package/embedded-knowledge/indexes/tags/indexing.json +1 -0
- package/embedded-knowledge/indexes/tags/inheritance.json +1 -0
- package/embedded-knowledge/indexes/tags/integration.json +1 -0
- package/embedded-knowledge/indexes/tags/integrity-checking.json +1 -0
- package/embedded-knowledge/indexes/tags/intellisense.json +1 -0
- package/embedded-knowledge/indexes/tags/interface-design.json +1 -0
- package/embedded-knowledge/indexes/tags/interface-segregation.json +1 -0
- package/embedded-knowledge/indexes/tags/isolation.json +1 -0
- package/embedded-knowledge/indexes/tags/job-processing.json +1 -0
- package/embedded-knowledge/indexes/tags/keyboard-navigation.json +1 -0
- package/embedded-knowledge/indexes/tags/keywords.json +1 -0
- package/embedded-knowledge/indexes/tags/legacy-modernization.json +1 -0
- package/embedded-knowledge/indexes/tags/line-breaks.json +1 -0
- package/embedded-knowledge/indexes/tags/line-organization.json +1 -0
- package/embedded-knowledge/indexes/tags/line-positioning.json +1 -0
- package/embedded-knowledge/indexes/tags/localization.json +1 -0
- package/embedded-knowledge/indexes/tags/logging.json +1 -0
- package/embedded-knowledge/indexes/tags/loose-coupling.json +1 -0
- package/embedded-knowledge/indexes/tags/maintainability.json +1 -0
- package/embedded-knowledge/indexes/tags/memory-management.json +1 -0
- package/embedded-knowledge/indexes/tags/memory-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/memory.json +1 -0
- package/embedded-knowledge/indexes/tags/message-design.json +1 -0
- package/embedded-knowledge/indexes/tags/message-formatting.json +1 -0
- package/embedded-knowledge/indexes/tags/message-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/metadata-driven.json +1 -0
- package/embedded-knowledge/indexes/tags/method-comparison.json +1 -0
- package/embedded-knowledge/indexes/tags/module-architecture.json +1 -0
- package/embedded-knowledge/indexes/tags/module-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/monitoring.json +1 -0
- package/embedded-knowledge/indexes/tags/multi-layer-facade.json +1 -0
- package/embedded-knowledge/indexes/tags/multi-tenancy.json +1 -0
- package/embedded-knowledge/indexes/tags/multiple-values.json +1 -0
- package/embedded-knowledge/indexes/tags/naming-conventions.json +1 -0
- package/embedded-knowledge/indexes/tags/naming.json +1 -0
- package/embedded-knowledge/indexes/tags/navigation.json +1 -0
- package/embedded-knowledge/indexes/tags/nested-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/no-series-conversion.json +1 -0
- package/embedded-knowledge/indexes/tags/no-series-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/no-series.json +1 -0
- package/embedded-knowledge/indexes/tags/number-generation.json +1 -0
- package/embedded-knowledge/indexes/tags/object-documentation.json +1 -0
- package/embedded-knowledge/indexes/tags/odata.json +1 -0
- package/embedded-knowledge/indexes/tags/ondelete.json +1 -0
- package/embedded-knowledge/indexes/tags/onvalidate.json +1 -0
- package/embedded-knowledge/indexes/tags/operation-delegation.json +1 -0
- package/embedded-knowledge/indexes/tags/operation-safety.json +1 -0
- package/embedded-knowledge/indexes/tags/operators.json +1 -0
- package/embedded-knowledge/indexes/tags/optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/order.json +1 -0
- package/embedded-knowledge/indexes/tags/organization.json +1 -0
- package/embedded-knowledge/indexes/tags/pages.json +1 -0
- package/embedded-knowledge/indexes/tags/parameters.json +1 -0
- package/embedded-knowledge/indexes/tags/patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/performance-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/performance.json +1 -0
- package/embedded-knowledge/indexes/tags/placement.json +1 -0
- package/embedded-knowledge/indexes/tags/posting-codeunits.json +1 -0
- package/embedded-knowledge/indexes/tags/posting.json +1 -0
- package/embedded-knowledge/indexes/tags/preconditions.json +1 -0
- package/embedded-knowledge/indexes/tags/primary-key.json +1 -0
- package/embedded-knowledge/indexes/tags/privacy.json +1 -0
- package/embedded-knowledge/indexes/tags/process-automation.json +1 -0
- package/embedded-knowledge/indexes/tags/production.json +1 -0
- package/embedded-knowledge/indexes/tags/productivity.json +1 -0
- package/embedded-knowledge/indexes/tags/query-performance.json +1 -0
- package/embedded-knowledge/indexes/tags/queue-management.json +1 -0
- package/embedded-knowledge/indexes/tags/ranges.json +1 -0
- package/embedded-knowledge/indexes/tags/readability.json +1 -0
- package/embedded-knowledge/indexes/tags/record-access.json +1 -0
- package/embedded-knowledge/indexes/tags/record-methods.json +1 -0
- package/embedded-knowledge/indexes/tags/refactoring.json +1 -0
- package/embedded-knowledge/indexes/tags/reference.json +1 -0
- package/embedded-knowledge/indexes/tags/repeat-loops.json +1 -0
- package/embedded-knowledge/indexes/tags/repeat-statement.json +1 -0
- package/embedded-knowledge/indexes/tags/runtime-errors.json +1 -0
- package/embedded-knowledge/indexes/tags/runtime.json +1 -0
- package/embedded-knowledge/indexes/tags/safeguards.json +1 -0
- package/embedded-knowledge/indexes/tags/security.json +1 -0
- package/embedded-knowledge/indexes/tags/sequence-management.json +1 -0
- package/embedded-knowledge/indexes/tags/serialization.json +1 -0
- package/embedded-knowledge/indexes/tags/session-logmessage.json +1 -0
- package/embedded-knowledge/indexes/tags/session.json +1 -0
- package/embedded-knowledge/indexes/tags/setloadfields.json +1 -0
- package/embedded-knowledge/indexes/tags/shortcuts.json +1 -0
- package/embedded-knowledge/indexes/tags/sift.json +1 -0
- package/embedded-knowledge/indexes/tags/singleinstance.json +1 -0
- package/embedded-knowledge/indexes/tags/spacing.json +1 -0
- package/embedded-knowledge/indexes/tags/sql-translation.json +1 -0
- package/embedded-knowledge/indexes/tags/standards.json +1 -0
- package/embedded-knowledge/indexes/tags/statements.json +1 -0
- package/embedded-knowledge/indexes/tags/streaming.json +1 -0
- package/embedded-knowledge/indexes/tags/strong-typing.json +1 -0
- package/embedded-knowledge/indexes/tags/structural-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/structure.json +1 -0
- package/embedded-knowledge/indexes/tags/subscribers.json +1 -0
- package/embedded-knowledge/indexes/tags/switch.json +1 -0
- package/embedded-knowledge/indexes/tags/symbol-search.json +1 -0
- package/embedded-knowledge/indexes/tags/syntax.json +1 -0
- package/embedded-knowledge/indexes/tags/systemid.json +1 -0
- package/embedded-knowledge/indexes/tags/table-configuration.json +1 -0
- package/embedded-knowledge/indexes/tags/table-events.json +1 -0
- package/embedded-knowledge/indexes/tags/table-keys.json +1 -0
- package/embedded-knowledge/indexes/tags/table-safety.json +1 -0
- package/embedded-knowledge/indexes/tags/task-scheduler.json +1 -0
- package/embedded-knowledge/indexes/tags/telemetry.json +1 -0
- package/embedded-knowledge/indexes/tags/template-method.json +1 -0
- package/embedded-knowledge/indexes/tags/temporary-tables.json +1 -0
- package/embedded-knowledge/indexes/tags/testfield.json +1 -0
- package/embedded-knowledge/indexes/tags/tradeoffs.json +1 -0
- package/embedded-knowledge/indexes/tags/triggers.json +1 -0
- package/embedded-knowledge/indexes/tags/troubleshooting.json +1 -0
- package/embedded-knowledge/indexes/tags/type-safety.json +1 -0
- package/embedded-knowledge/indexes/tags/url-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/user-experience.json +1 -0
- package/embedded-knowledge/indexes/tags/user-feedback.json +1 -0
- package/embedded-knowledge/indexes/tags/user-interface.json +1 -0
- package/embedded-knowledge/indexes/tags/validation-feedback.json +1 -0
- package/embedded-knowledge/indexes/tags/validation.json +1 -0
- package/embedded-knowledge/indexes/tags/variables.json +1 -0
- package/embedded-knowledge/indexes/tags/verbosity.json +1 -0
- package/embedded-knowledge/indexes/tags/vs-code.json +1 -0
- package/embedded-knowledge/indexes/tags/web-services.json +1 -0
- package/embedded-knowledge/indexes/tags/workflow-management.json +1 -0
- package/embedded-knowledge/indexes/tags/workflow-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/workflow-templates.json +1 -0
- package/embedded-knowledge/indexes/tags/workspace.json +1 -0
- package/embedded-knowledge/indexes/tags/xml-documentation.json +1 -0
- package/embedded-knowledge/indexes/topic-relationships.json +128 -0
- package/embedded-knowledge/methodologies/index.json +81 -0
- package/embedded-knowledge/methodologies/phases/analysis-full.md +208 -0
- package/embedded-knowledge/methodologies/phases/analysis-quick.md +44 -0
- package/embedded-knowledge/methodologies/phases/analysis.md +182 -0
- package/embedded-knowledge/methodologies/phases/execution-validation-full.md +174 -0
- package/embedded-knowledge/methodologies/phases/execution-validation-quick.md +31 -0
- package/embedded-knowledge/methodologies/phases/execution-validation.md +174 -0
- package/embedded-knowledge/methodologies/phases/performance-full.md +211 -0
- package/embedded-knowledge/methodologies/phases/performance-quick.md +32 -0
- package/embedded-knowledge/methodologies/phases/performance.md +211 -0
- package/embedded-knowledge/methodologies/phases/verification-full.md +162 -0
- package/embedded-knowledge/methodologies/phases/verification-quick.md +48 -0
- package/embedded-knowledge/methodologies/phases/verification.md +146 -0
- package/embedded-knowledge/methodologies/workflow-enforcement.md +142 -0
- package/embedded-knowledge/methodologies/workflows/code-review-workflow.md +99 -0
- package/embedded-knowledge/methodologies/workflows/proposal-review-workflow.md +535 -0
- package/embedded-knowledge/specialists/alex-architect.md +305 -0
- package/embedded-knowledge/specialists/casey-copilot.md +314 -0
- package/embedded-knowledge/specialists/chris-config.md +226 -0
- package/embedded-knowledge/specialists/dean-debug.md +365 -0
- package/embedded-knowledge/specialists/eva-errors.md +291 -0
- package/embedded-knowledge/specialists/jordan-bridge.md +291 -0
- package/embedded-knowledge/specialists/logan-legacy.md +265 -0
- package/embedded-knowledge/specialists/maya-mentor.md +299 -0
- package/embedded-knowledge/specialists/morgan-market.md +281 -0
- package/embedded-knowledge/specialists/parker-pragmatic.md +564 -0
- package/embedded-knowledge/specialists/quinn-tester.md +323 -0
- package/embedded-knowledge/specialists/roger-reviewer.md +317 -0
- package/embedded-knowledge/specialists/sam-coder.md +342 -0
- package/embedded-knowledge/specialists/seth-security.md +290 -0
- package/embedded-knowledge/specialists/taylor-docs.md +312 -0
- package/embedded-knowledge/specialists/uma-ux.md +291 -0
- package/package.json +82 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Contributing to Business Central Knowledge Base
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
This repository contains pure knowledge content for Business Central best practices. All content is markdown with YAML frontmatter.
|
|
5
|
+
|
|
6
|
+
## Content Standards
|
|
7
|
+
|
|
8
|
+
### File Structure
|
|
9
|
+
Each knowledge topic follows this structure:
|
|
10
|
+
```markdown
|
|
11
|
+
---
|
|
12
|
+
title: "Topic Title"
|
|
13
|
+
domain: "performance"
|
|
14
|
+
difficulty: "intermediate"
|
|
15
|
+
bc_versions: "14+"
|
|
16
|
+
tags: ["sift", "optimization", "database"]
|
|
17
|
+
related_topics: ["topic-id-1", "topic-id-2"]
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Topic Title
|
|
21
|
+
|
|
22
|
+
Content here following established patterns...
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Quality Requirements
|
|
26
|
+
- **Atomic Focus**: One concept per file
|
|
27
|
+
- **BC Version Compatibility**: Always specify version ranges
|
|
28
|
+
- **Complete Frontmatter**: All required YAML fields present
|
|
29
|
+
- **Cross-References**: Link to related topics where appropriate
|
|
30
|
+
- **Consistent Formatting**: Follow existing markdown patterns
|
|
31
|
+
|
|
32
|
+
## Submission Process
|
|
33
|
+
1. Fork the repository
|
|
34
|
+
2. Create content following established patterns in appropriate domain directory
|
|
35
|
+
3. Ensure YAML frontmatter is complete and valid
|
|
36
|
+
4. Test that internal links work correctly
|
|
37
|
+
5. Submit pull request with clear description of the knowledge added/updated
|
|
38
|
+
|
|
39
|
+
## Content Validation
|
|
40
|
+
Pull requests are automatically validated for:
|
|
41
|
+
- YAML frontmatter completeness
|
|
42
|
+
- BC version compatibility format
|
|
43
|
+
- Internal link integrity
|
|
44
|
+
- Proper domain/directory placement
|
|
45
|
+
- Markdown formatting consistency
|
|
46
|
+
|
|
47
|
+
## Domain Organization
|
|
48
|
+
Place content in appropriate domain directories:
|
|
49
|
+
- `domains/performance/` - Performance optimization
|
|
50
|
+
- `domains/api-design/` - REST/OData patterns
|
|
51
|
+
- `domains/security/` - Authentication/authorization
|
|
52
|
+
- `domains/data-architecture/` - Table design
|
|
53
|
+
- [See full domain list in repository structure]
|
|
54
|
+
|
|
55
|
+
## Getting Help
|
|
56
|
+
- Review existing topics for patterns
|
|
57
|
+
- Check AGENTS.md for AI assistant guidance
|
|
58
|
+
- Open issues for questions about content organization
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Business Central Knowledge Base
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# BC Code Intelligence Knowledge Base
|
|
2
|
+
|
|
3
|
+
Pure knowledge content repository for Business Central best practices, methodologies, and domain expertise.
|
|
4
|
+
|
|
5
|
+
## Structure
|
|
6
|
+
- `/domains/` - 24 BC domains with 87+ atomic knowledge topics
|
|
7
|
+
- `/methodologies/` - AI workflow frameworks for systematic optimization
|
|
8
|
+
- `/specialists/` - 14 AI persona definitions for focused expertise
|
|
9
|
+
- `/prompts/` - Strategic prompts for common BC scenarios
|
|
10
|
+
|
|
11
|
+
## Specialists
|
|
12
|
+
Complete roster of 14 BC development specialists:
|
|
13
|
+
- **Alex Architect** - Strategic Planning & Architecture
|
|
14
|
+
- **Casey Copilot** - AI-Enhanced Development Coach
|
|
15
|
+
- **Dean Debug** - Performance & Troubleshooting
|
|
16
|
+
- **Eva Errors** - Error Handling & Exception Management
|
|
17
|
+
- **Jordan Bridge** - Systems Connection & Event-Driven Design
|
|
18
|
+
- **Logan Legacy** - Legacy Code & Version Migration
|
|
19
|
+
- **Maya Mentor** - Learning & Skill Development
|
|
20
|
+
- **Morgan Market** - AppSource & ISV Business Expert
|
|
21
|
+
- **Quinn Tester** - Quality Validation & Test Design
|
|
22
|
+
- **Roger Reviewer** - Code Quality & Review Standards
|
|
23
|
+
- **Sam Coder** - Efficient Implementation Expert
|
|
24
|
+
- **Seth Security** - Security & Permission Management
|
|
25
|
+
- **Taylor Docs** - Documentation & Knowledge Management
|
|
26
|
+
- **Uma UX** - User Experience & Interface Design
|
|
27
|
+
|
|
28
|
+
## Usage
|
|
29
|
+
This repository is consumed by the BC Code Intelligence MCP server via git submodule. Content is pure markdown with YAML frontmatter.
|
|
30
|
+
|
|
31
|
+
## Contributing
|
|
32
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for content standards and submission process.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "API Delegate Operation Pattern"
|
|
3
|
+
domain: "alex-architect"
|
|
4
|
+
difficulty: "advanced"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["api-delegates", "operation-delegation", "api-patterns", "extensibility"]
|
|
7
|
+
prerequisites: ["api-basics", "interface-implementation", "event-handling"]
|
|
8
|
+
samples: "samples/api-delegate-operation.md"
|
|
9
|
+
related_topics: ["api-interface-design-patterns", "event-bridge-pattern-al"]
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# API Delegate Operation Pattern
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
The API Delegate Operation Pattern enables flexible API architectures by delegating specific operations to external handlers while maintaining consistent API contracts. This pattern is essential for building extensible APIs that can be enhanced by different modules without modifying core API logic.
|
|
17
|
+
|
|
18
|
+
**Key Benefit**: Provides extensibility points in APIs while maintaining backward compatibility and clear separation of concerns.
|
|
19
|
+
|
|
20
|
+
## Strategic Framework
|
|
21
|
+
|
|
22
|
+
### Delegation Architecture
|
|
23
|
+
Design APIs with explicit delegation points where external modules can register operation handlers, enabling customization without API modification.
|
|
24
|
+
|
|
25
|
+
### Contract Preservation
|
|
26
|
+
Maintain consistent API contracts while allowing internal operation logic to be delegated to specialized handlers based on context or configuration.
|
|
27
|
+
|
|
28
|
+
### Dynamic Handler Selection
|
|
29
|
+
Implement runtime handler selection mechanisms that choose appropriate delegates based on operation parameters, user context, or system configuration.
|
|
30
|
+
|
|
31
|
+
## Core Implementation Patterns
|
|
32
|
+
|
|
33
|
+
### Operation Delegate Interface
|
|
34
|
+
Define clear interfaces for operation delegates that specify input parameters, expected outputs, and error handling contracts.
|
|
35
|
+
|
|
36
|
+
### Delegate Registry Pattern
|
|
37
|
+
Implement registration systems where modules can register their operation delegates, enabling discovery and selection at runtime.
|
|
38
|
+
|
|
39
|
+
### Chain of Responsibility Integration
|
|
40
|
+
Combine delegation with chain of responsibility patterns to enable multiple delegates to process operations in sequence.
|
|
41
|
+
|
|
42
|
+
## Advanced Delegation Strategies
|
|
43
|
+
|
|
44
|
+
### Contextual Delegation
|
|
45
|
+
Use operation context (user, company, feature flags) to determine which delegate should handle specific operations.
|
|
46
|
+
|
|
47
|
+
### Fallback Delegate Chains
|
|
48
|
+
Implement fallback mechanisms where multiple delegates can be attempted if primary delegates fail or are unavailable.
|
|
49
|
+
|
|
50
|
+
### Composite Operation Delegation
|
|
51
|
+
Design delegates that can compose multiple sub-operations, enabling complex operation workflows through delegation.
|
|
52
|
+
|
|
53
|
+
## Performance Considerations
|
|
54
|
+
|
|
55
|
+
### Delegate Caching
|
|
56
|
+
Cache delegate instances and registration information to minimize lookup overhead during high-frequency API operations.
|
|
57
|
+
|
|
58
|
+
### Lazy Delegate Loading
|
|
59
|
+
Implement lazy loading patterns for delegates to avoid unnecessary initialization overhead for unused operation paths.
|
|
60
|
+
|
|
61
|
+
### Operation Profiling
|
|
62
|
+
Monitor delegate operation performance to identify bottlenecks and optimize critical delegation paths.
|
|
63
|
+
|
|
64
|
+
## Best Practices
|
|
65
|
+
|
|
66
|
+
### Design Principles
|
|
67
|
+
- Define clear delegate contracts with explicit input/output specifications
|
|
68
|
+
- Implement robust error handling for delegate failures
|
|
69
|
+
- Use dependency injection for delegate registration and discovery
|
|
70
|
+
- Document delegation points and available extension mechanisms
|
|
71
|
+
|
|
72
|
+
### Security Considerations
|
|
73
|
+
- Validate delegate operations for security compliance
|
|
74
|
+
- Implement authorization checks for delegate registration
|
|
75
|
+
- Ensure delegate operations respect user permissions and data access rules
|
|
76
|
+
|
|
77
|
+
## Common Pitfalls
|
|
78
|
+
|
|
79
|
+
### Over-Delegation
|
|
80
|
+
Avoid creating too many delegation points that make API behavior unpredictable or difficult to debug.
|
|
81
|
+
|
|
82
|
+
### Delegate Coupling
|
|
83
|
+
Prevent tight coupling between API logic and specific delegate implementations that reduces flexibility.
|
|
84
|
+
|
|
85
|
+
### Performance Overhead
|
|
86
|
+
Be mindful of delegation overhead in performance-critical scenarios where direct operation execution might be more appropriate.
|
|
87
|
+
|
|
88
|
+
*Complete delegation implementation: samples/api-delegate-operation.md*
|
|
89
|
+
*API design patterns: api-interface-design-patterns.md*
|
|
90
|
+
*Event-driven delegation: event-bridge-pattern-al.md*
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "API Fieldset Registration Pattern"
|
|
3
|
+
domain: "alex-architect"
|
|
4
|
+
difficulty: "intermediate"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["api-fieldsets", "field-registration", "api-extensibility", "metadata-driven"]
|
|
7
|
+
prerequisites: ["api-basics", "fieldset-concepts", "registration-patterns"]
|
|
8
|
+
samples: "samples/api-fieldset-registration.md"
|
|
9
|
+
related_topics: ["api-interface-design-patterns", "api-delegate-operation-pattern"]
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# API Fieldset Registration Pattern
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
The API Fieldset Registration Pattern enables dynamic field management in APIs by allowing modules to register field definitions that can be included in API responses. This pattern supports extensible APIs where different modules can contribute fields without modifying core API logic.
|
|
17
|
+
|
|
18
|
+
**Key Benefit**: Enables flexible, extensible APIs where field availability can be determined dynamically based on installed modules and user permissions.
|
|
19
|
+
|
|
20
|
+
## Strategic Framework
|
|
21
|
+
|
|
22
|
+
### Dynamic Field Discovery
|
|
23
|
+
Implement registration mechanisms where modules can register field definitions that become available for API consumption based on runtime conditions.
|
|
24
|
+
|
|
25
|
+
### Metadata-Driven Selection
|
|
26
|
+
Use metadata to describe field characteristics, enabling intelligent field selection based on client requirements and system capabilities.
|
|
27
|
+
|
|
28
|
+
### Permission-Aware Fields
|
|
29
|
+
Integrate field registration with permission systems to ensure only authorized fields are exposed through API responses.
|
|
30
|
+
|
|
31
|
+
## Core Registration Patterns
|
|
32
|
+
|
|
33
|
+
### Module-Based Registration
|
|
34
|
+
Enable modules to register their field contributions during initialization, allowing for modular field extension without core API changes.
|
|
35
|
+
|
|
36
|
+
### Conditional Field Registration
|
|
37
|
+
Implement registration logic that considers system configuration, feature flags, and user context to determine field availability.
|
|
38
|
+
|
|
39
|
+
### Hierarchical Field Organization
|
|
40
|
+
Organize registered fields in hierarchical structures that support grouping, categorization, and efficient lookup operations.
|
|
41
|
+
|
|
42
|
+
## Implementation Strategies
|
|
43
|
+
|
|
44
|
+
### Registry Architecture
|
|
45
|
+
Design field registries that support efficient lookup, validation, and metadata management for dynamic field selection.
|
|
46
|
+
|
|
47
|
+
### Field Metadata Management
|
|
48
|
+
Implement comprehensive field metadata including data types, validation rules, permission requirements, and display characteristics.
|
|
49
|
+
|
|
50
|
+
### Selection Optimization
|
|
51
|
+
Optimize field selection algorithms to minimize performance impact when processing large numbers of registered fields.
|
|
52
|
+
|
|
53
|
+
## Advanced Registration Features
|
|
54
|
+
|
|
55
|
+
### Field Dependency Management
|
|
56
|
+
Implement dependency tracking between fields to ensure required fields are included when dependent fields are selected.
|
|
57
|
+
|
|
58
|
+
### Field Transformation Pipelines
|
|
59
|
+
Design transformation pipelines that can modify field values during API response generation based on registration metadata.
|
|
60
|
+
|
|
61
|
+
### Caching Strategies
|
|
62
|
+
Implement caching for field registration data to improve API response performance for frequently accessed field sets.
|
|
63
|
+
|
|
64
|
+
## Performance Considerations
|
|
65
|
+
|
|
66
|
+
### Registration Overhead
|
|
67
|
+
Minimize registration overhead through efficient storage and indexing of field metadata and registration information.
|
|
68
|
+
|
|
69
|
+
### Selection Performance
|
|
70
|
+
Optimize field selection algorithms to support high-frequency API operations without significant performance degradation.
|
|
71
|
+
|
|
72
|
+
### Memory Management
|
|
73
|
+
Implement efficient memory management for field registration data to prevent memory leaks and excessive resource usage.
|
|
74
|
+
|
|
75
|
+
## Security and Validation
|
|
76
|
+
|
|
77
|
+
### Permission Integration
|
|
78
|
+
- Integrate field registration with permission systems
|
|
79
|
+
- Validate user authorization for specific field access
|
|
80
|
+
- Implement field-level security policies
|
|
81
|
+
- Support dynamic permission evaluation
|
|
82
|
+
|
|
83
|
+
### Data Validation
|
|
84
|
+
- Validate registered field definitions for correctness
|
|
85
|
+
- Implement runtime validation of field values
|
|
86
|
+
- Support custom validation rules per registered field
|
|
87
|
+
- Ensure data type consistency across registrations
|
|
88
|
+
|
|
89
|
+
## Best Practices
|
|
90
|
+
|
|
91
|
+
### Registration Design
|
|
92
|
+
- Use strongly-typed field registration interfaces
|
|
93
|
+
- Implement clear naming conventions for registered fields
|
|
94
|
+
- Provide comprehensive metadata for each registered field
|
|
95
|
+
- Support registration validation and error reporting
|
|
96
|
+
|
|
97
|
+
### API Integration
|
|
98
|
+
- Design consistent field selection patterns across API endpoints
|
|
99
|
+
- Implement clear documentation for available fields
|
|
100
|
+
- Support field discovery mechanisms for API consumers
|
|
101
|
+
- Provide examples of field selection usage
|
|
102
|
+
|
|
103
|
+
## Common Pitfalls
|
|
104
|
+
|
|
105
|
+
### Over-Registration
|
|
106
|
+
Avoid registering too many fields that can overwhelm API consumers and impact performance through excessive selection overhead.
|
|
107
|
+
|
|
108
|
+
### Inconsistent Metadata
|
|
109
|
+
Prevent inconsistent field metadata that can lead to unpredictable API behavior and difficult debugging scenarios.
|
|
110
|
+
|
|
111
|
+
*Complete fieldset registration examples: samples/api-fieldset-registration.md*
|
|
112
|
+
*API interface patterns: api-interface-design-patterns.md*
|
|
113
|
+
*Dynamic API patterns: api-delegate-operation-pattern.md*
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "API Interface Design Patterns"
|
|
3
|
+
domain: "alex-architect"
|
|
4
|
+
difficulty: "intermediate"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["api-interfaces", "contract-design", "api-patterns", "interface-segregation"]
|
|
7
|
+
prerequisites: ["interface-basics", "api-fundamentals", "contract-design"]
|
|
8
|
+
samples: "samples/api-interface-design.md"
|
|
9
|
+
related_topics: ["api-delegate-operation-pattern", "api-fieldset-registration-pattern"]
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# API Interface Design Patterns
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
API Interface Design Patterns provide proven approaches for creating maintainable, extensible, and user-friendly API contracts. These patterns ensure APIs remain stable while supporting evolution and provide clear contracts for consumers.
|
|
17
|
+
|
|
18
|
+
**Key Benefit**: Creates predictable, maintainable API contracts that support long-term evolution without breaking existing consumers.
|
|
19
|
+
|
|
20
|
+
## Core Design Principles
|
|
21
|
+
|
|
22
|
+
### Interface Segregation
|
|
23
|
+
Design focused interfaces that serve specific purposes rather than monolithic interfaces that attempt to handle all scenarios.
|
|
24
|
+
|
|
25
|
+
### Contract Stability
|
|
26
|
+
Maintain backward compatibility through careful interface evolution strategies and versioning approaches.
|
|
27
|
+
|
|
28
|
+
### Consumer-Centric Design
|
|
29
|
+
Design interfaces from the consumer perspective, optimizing for common usage patterns and developer experience.
|
|
30
|
+
|
|
31
|
+
## Essential Interface Patterns
|
|
32
|
+
|
|
33
|
+
### Command-Query Separation
|
|
34
|
+
Separate interfaces for operations that modify state (commands) from those that retrieve data (queries), enabling clearer contracts and better optimization opportunities.
|
|
35
|
+
|
|
36
|
+
### Fluent Interface Pattern
|
|
37
|
+
Design method chaining interfaces that enable expressive, readable API usage while maintaining type safety and clear operation sequencing.
|
|
38
|
+
|
|
39
|
+
### Builder Interface Pattern
|
|
40
|
+
Implement builder-style interfaces for complex object construction scenarios where multiple optional parameters need to be specified.
|
|
41
|
+
|
|
42
|
+
## Versioning and Evolution Strategies
|
|
43
|
+
|
|
44
|
+
### Additive Interface Evolution
|
|
45
|
+
Design interfaces to support evolution through additive changes that don't break existing consumers while enabling new functionality.
|
|
46
|
+
|
|
47
|
+
### Interface Composition
|
|
48
|
+
Use interface composition to build complex API contracts from smaller, focused interface components that can evolve independently.
|
|
49
|
+
|
|
50
|
+
### Deprecation Patterns
|
|
51
|
+
Implement clear deprecation strategies that provide migration paths for consumers while enabling interface evolution.
|
|
52
|
+
|
|
53
|
+
## Advanced Interface Patterns
|
|
54
|
+
|
|
55
|
+
### Contextual Interface Adaptation
|
|
56
|
+
Design interfaces that adapt their behavior based on context (user permissions, feature flags, system configuration) while maintaining consistent contracts.
|
|
57
|
+
|
|
58
|
+
### Generic Interface Patterns
|
|
59
|
+
Use generic interfaces to provide type-safe operations across different data types while maintaining consistent operation patterns.
|
|
60
|
+
|
|
61
|
+
### Callback Interface Integration
|
|
62
|
+
Integrate callback interfaces for asynchronous operations and event handling while maintaining clear contract boundaries.
|
|
63
|
+
|
|
64
|
+
## Implementation Guidelines
|
|
65
|
+
|
|
66
|
+
### Parameter Design
|
|
67
|
+
- Use strongly-typed parameters with clear naming conventions
|
|
68
|
+
- Implement validation at interface boundaries
|
|
69
|
+
- Provide clear documentation for parameter requirements and constraints
|
|
70
|
+
- Consider parameter object patterns for complex method signatures
|
|
71
|
+
|
|
72
|
+
### Return Value Patterns
|
|
73
|
+
- Design consistent return value patterns across interface methods
|
|
74
|
+
- Use result objects for operations that can fail with detailed error information
|
|
75
|
+
- Implement null object patterns where appropriate to avoid null reference issues
|
|
76
|
+
|
|
77
|
+
## Best Practices
|
|
78
|
+
|
|
79
|
+
### Documentation Standards
|
|
80
|
+
- Provide comprehensive interface documentation with examples
|
|
81
|
+
- Document expected behaviors, side effects, and error conditions
|
|
82
|
+
- Include performance characteristics and usage guidelines
|
|
83
|
+
- Maintain versioning documentation for interface evolution
|
|
84
|
+
|
|
85
|
+
### Error Handling Design
|
|
86
|
+
- Design consistent error handling patterns across all interface methods
|
|
87
|
+
- Use typed exceptions or result objects for error communication
|
|
88
|
+
- Provide actionable error messages for consumers
|
|
89
|
+
- Implement proper error recovery guidance
|
|
90
|
+
|
|
91
|
+
## Common Pitfalls
|
|
92
|
+
|
|
93
|
+
### Interface Bloat
|
|
94
|
+
Avoid creating large interfaces that try to handle too many scenarios, making them difficult to implement and maintain.
|
|
95
|
+
|
|
96
|
+
### Breaking Changes
|
|
97
|
+
Prevent accidental breaking changes through careful interface evolution planning and comprehensive testing strategies.
|
|
98
|
+
|
|
99
|
+
*Complete interface design examples: samples/api-interface-design.md*
|
|
100
|
+
*Delegation patterns: api-delegate-operation-pattern.md*
|
|
101
|
+
*Registration patterns: api-fieldset-registration-pattern.md*
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AL API Page Development Patterns"
|
|
3
|
+
domain: "alex-architect"
|
|
4
|
+
difficulty: "intermediate"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["api", "pages", "odata", "integration", "architecture"]
|
|
7
|
+
samples: "samples/api-page-implementation.md"
|
|
8
|
+
type: "implementation-pattern"
|
|
9
|
+
category: "api-development"
|
|
10
|
+
pattern_type: "good"
|
|
11
|
+
severity: "medium"
|
|
12
|
+
impact_level: "high"
|
|
13
|
+
improvement_suggestion: "Use API pages for structured external system integration"
|
|
14
|
+
implementation_steps: ["design-api-structure", "implement-field-exposure", "optimize-performance"]
|
|
15
|
+
validation_criteria: ["odata-compliance", "security-integration", "performance-optimization"]
|
|
16
|
+
technical_areas: ["al-code", "integration"]
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# AL API Page Development Patterns
|
|
20
|
+
|
|
21
|
+
## Overview
|
|
22
|
+
|
|
23
|
+
API pages in Business Central provide structured OData endpoints for external system integration. Unlike standard pages, API pages focus exclusively on data exchange with minimal UI considerations, requiring careful design for optimal performance and maintainability.
|
|
24
|
+
|
|
25
|
+
**Key Decision**: API pages should expose logical business entities rather than raw table structures, providing stable integration contracts that abstract internal data organization.
|
|
26
|
+
|
|
27
|
+
## Strategic Framework
|
|
28
|
+
|
|
29
|
+
### API Page Design Philosophy
|
|
30
|
+
- **Business Entity Focus**: Expose meaningful business concepts (Customer, Item, SalesOrder) rather than normalized table structures
|
|
31
|
+
- **Contract Stability**: Maintain consistent field names and structures across BC versions to protect integration investments
|
|
32
|
+
- **Performance Optimization**: Design for efficient data retrieval and modification patterns expected by consuming applications
|
|
33
|
+
- **Security Integration**: Leverage BC's built-in authentication and authorization without exposing sensitive internal structures
|
|
34
|
+
|
|
35
|
+
### Integration Architecture Patterns
|
|
36
|
+
API pages serve as the primary integration layer between Business Central and external systems. They should provide complete business entity representations while maintaining clear separation between internal data models and external contracts.
|
|
37
|
+
|
|
38
|
+
## Architecture Focus
|
|
39
|
+
|
|
40
|
+
### Page Structure Design
|
|
41
|
+
API pages require specific architectural considerations distinct from interactive pages. The PageType API designation enables OData endpoint generation with automatic JSON serialization and standardized query capabilities.
|
|
42
|
+
|
|
43
|
+
### Field Exposure Strategy
|
|
44
|
+
Expose fields that represent complete business entity state while avoiding internal implementation details. Include essential business identifiers, descriptive fields, and workflow status information that external systems need for business logic.
|
|
45
|
+
|
|
46
|
+
### Relationship Management
|
|
47
|
+
Design API pages to include related entity references through careful use of lookup fields and calculated fields. This enables consuming applications to navigate business relationships without requiring multiple API calls.
|
|
48
|
+
|
|
49
|
+
### Version Compatibility
|
|
50
|
+
Structure API pages to maintain backward compatibility as business requirements evolve. Use consistent naming conventions and avoid breaking changes to established field contracts.
|
|
51
|
+
|
|
52
|
+
## Best Practices
|
|
53
|
+
|
|
54
|
+
### Entity Modeling
|
|
55
|
+
- **Complete Business Context**: Include all fields necessary for external systems to make business decisions
|
|
56
|
+
- **Logical Grouping**: Group related information to minimize round-trips for common business scenarios
|
|
57
|
+
- **Status Visibility**: Expose workflow states and business status fields that affect integration logic
|
|
58
|
+
- **Audit Information**: Include creation dates, modification timestamps, and responsible user information
|
|
59
|
+
|
|
60
|
+
### Performance Considerations
|
|
61
|
+
- **Selective Field Loading**: Design pages to load only necessary fields for common query patterns
|
|
62
|
+
- **Efficient Filtering**: Support standard OData filtering on key business fields like dates, status, and identifiers
|
|
63
|
+
- **Batch Operation Support**: Enable bulk data operations where business processes require them
|
|
64
|
+
- **Caching Awareness**: Structure responses to support effective caching strategies in consuming applications
|
|
65
|
+
|
|
66
|
+
### Security Implementation
|
|
67
|
+
- **Principle of Least Privilege**: Expose only fields that external systems legitimately need for business operations
|
|
68
|
+
- **Sensitive Data Protection**: Exclude internal identifiers, system fields, and confidential business information
|
|
69
|
+
- **Access Control Integration**: Leverage BC's permission system to control API access at field and record levels
|
|
70
|
+
- **Audit Trail Maintenance**: Ensure API operations create appropriate audit records for compliance requirements
|
|
71
|
+
|
|
72
|
+
## Anti-Patterns
|
|
73
|
+
|
|
74
|
+
### Avoid These Approaches
|
|
75
|
+
- **Direct Table Exposure**: Exposing raw table structures without business context abstraction
|
|
76
|
+
- **Internal Field Leakage**: Including system fields, internal identifiers, or implementation details in API contracts
|
|
77
|
+
- **Incomplete Entity Representation**: Requiring multiple API calls to reconstruct basic business entity state
|
|
78
|
+
- **Breaking Contract Changes**: Modifying existing field names or removing fields without proper versioning strategy
|
|
79
|
+
|
|
80
|
+
### Common Design Mistakes
|
|
81
|
+
- **Over-Normalization**: Creating APIs that mirror database structure rather than business entity logic
|
|
82
|
+
- **Under-Documentation**: Failing to provide clear guidance on field usage and business meaning
|
|
83
|
+
- **Security Oversights**: Exposing sensitive information or bypassing standard BC security mechanisms
|
|
84
|
+
- **Performance Blindness**: Designing APIs without considering query patterns and data volume implications
|
|
85
|
+
|
|
86
|
+
*Implementation examples: see samples/api-page-implementation.md*
|
|
87
|
+
*Related patterns: facade-pattern-external-api.md, api-authentication-patterns.md*
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Complex Facade Patterns"
|
|
3
|
+
domain: "alex-architect"
|
|
4
|
+
difficulty: "advanced"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["complex-facade", "enterprise-patterns", "multi-layer-facade", "facade-composition"]
|
|
7
|
+
prerequisites: ["facade-pattern-al-implementation", "enterprise-architecture", "advanced-al"]
|
|
8
|
+
samples: "samples/complex-facade-patterns.md"
|
|
9
|
+
related_topics: ["facade-pattern-al-implementation", "enterprise-integration-patterns"]
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Complex Facade Patterns
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
Complex Facade Patterns extend basic facade concepts to handle enterprise-scale scenarios involving multiple subsystems, cross-cutting concerns, and sophisticated business logic coordination. These patterns enable management of intricate system architectures while maintaining clean, manageable interfaces.
|
|
17
|
+
|
|
18
|
+
**Key Benefit**: Enables management of complex enterprise systems through sophisticated facade architectures that maintain simplicity for consumers while handling intricate backend coordination.
|
|
19
|
+
|
|
20
|
+
## Advanced Facade Architectures
|
|
21
|
+
|
|
22
|
+
### Multi-Layer Facade Systems
|
|
23
|
+
Design facade hierarchies where higher-level facades coordinate lower-level facades, enabling different abstraction levels for different consumer types.
|
|
24
|
+
|
|
25
|
+
### Composite Facade Coordination
|
|
26
|
+
Implement facade composition patterns where multiple specialized facades work together to provide comprehensive business capability interfaces.
|
|
27
|
+
|
|
28
|
+
### Domain-Specific Facade Clusters
|
|
29
|
+
Create facade clusters that serve specific business domains while maintaining coordination capabilities for cross-domain operations.
|
|
30
|
+
|
|
31
|
+
## Enterprise Integration Patterns
|
|
32
|
+
|
|
33
|
+
### Cross-System Facade Orchestration
|
|
34
|
+
Design facades that coordinate operations across multiple Business Central environments, external systems, and cloud services.
|
|
35
|
+
|
|
36
|
+
### Transaction-Spanning Facades
|
|
37
|
+
Implement facades that manage distributed transactions and coordination across multiple systems while providing simple operation interfaces.
|
|
38
|
+
|
|
39
|
+
### Event-Driven Facade Coordination
|
|
40
|
+
Integrate complex facades with event-driven architectures to enable reactive coordination and loose coupling between facade layers.
|
|
41
|
+
|
|
42
|
+
## Sophisticated Business Logic Patterns
|
|
43
|
+
|
|
44
|
+
### Workflow Facade Integration
|
|
45
|
+
Design facades that encapsulate complex workflow orchestration, managing state transitions, approvals, and business rule enforcement.
|
|
46
|
+
|
|
47
|
+
### Policy-Driven Facade Behavior
|
|
48
|
+
Implement facades that adapt their behavior based on business policies, user roles, and dynamic configuration without interface changes.
|
|
49
|
+
|
|
50
|
+
### Context-Sensitive Facade Operations
|
|
51
|
+
Create facades that provide different capabilities and behaviors based on execution context, user permissions, and system state.
|
|
52
|
+
|
|
53
|
+
## Performance and Scalability Patterns
|
|
54
|
+
|
|
55
|
+
### Caching-Enabled Facade Architecture
|
|
56
|
+
- Implement multi-level caching within facade hierarchies
|
|
57
|
+
- Design cache invalidation strategies for complex data dependencies
|
|
58
|
+
- Support distributed caching for multi-instance scenarios
|
|
59
|
+
- Optimize cache performance for high-frequency facade operations
|
|
60
|
+
|
|
61
|
+
### Asynchronous Facade Operations
|
|
62
|
+
- Design asynchronous facade patterns for long-running operations
|
|
63
|
+
- Implement callback and notification mechanisms for async completion
|
|
64
|
+
- Support progress tracking and cancellation for complex operations
|
|
65
|
+
- Enable parallel execution of independent facade operations
|
|
66
|
+
|
|
67
|
+
## Advanced Error Handling
|
|
68
|
+
|
|
69
|
+
### Cascade Error Management
|
|
70
|
+
Implement sophisticated error handling that can manage failures across multiple facade layers and subsystem components.
|
|
71
|
+
|
|
72
|
+
### Recovery and Compensation
|
|
73
|
+
Design compensation patterns that can recover from partial failures in complex operations spanning multiple systems.
|
|
74
|
+
|
|
75
|
+
### Circuit Breaker Integration
|
|
76
|
+
Integrate circuit breaker patterns within facades to prevent cascade failures and enable graceful degradation.
|
|
77
|
+
|
|
78
|
+
## Security and Compliance Patterns
|
|
79
|
+
|
|
80
|
+
### Multi-Tenant Facade Security
|
|
81
|
+
Design facades that handle multi-tenant security concerns while providing unified interfaces across tenant boundaries.
|
|
82
|
+
|
|
83
|
+
### Compliance-Aware Operations
|
|
84
|
+
Implement facades that automatically handle compliance requirements such as audit logging, data retention, and privacy regulations.
|
|
85
|
+
|
|
86
|
+
### Permission-Based Facade Adaptation
|
|
87
|
+
Create facades that dynamically adapt their available operations based on user permissions and security policies.
|
|
88
|
+
|
|
89
|
+
## Monitoring and Diagnostics
|
|
90
|
+
|
|
91
|
+
### Facade Performance Analytics
|
|
92
|
+
Implement comprehensive performance monitoring across facade hierarchies to identify bottlenecks and optimization opportunities.
|
|
93
|
+
|
|
94
|
+
### Operation Tracing
|
|
95
|
+
Design distributed tracing capabilities that can track operations across multiple facade layers and subsystem components.
|
|
96
|
+
|
|
97
|
+
### Health Monitoring
|
|
98
|
+
Create health monitoring systems that can assess the status of complex facade architectures and provide early warning of issues.
|
|
99
|
+
|
|
100
|
+
## Integration Strategies
|
|
101
|
+
|
|
102
|
+
### API Gateway Facade Patterns
|
|
103
|
+
Design facades that serve as API gateways, providing external access to complex internal capabilities with appropriate security and rate limiting.
|
|
104
|
+
|
|
105
|
+
### Microservice Facade Coordination
|
|
106
|
+
Implement facades that coordinate microservice interactions while hiding service discovery, load balancing, and failure handling.
|
|
107
|
+
|
|
108
|
+
### Legacy System Integration
|
|
109
|
+
Create facades that modernize access to legacy systems while maintaining compatibility and enabling gradual migration strategies.
|
|
110
|
+
|
|
111
|
+
## Testing Complex Facades
|
|
112
|
+
|
|
113
|
+
### Multi-Layer Testing Strategies
|
|
114
|
+
- Implement testing strategies that validate facade behavior at multiple abstraction levels
|
|
115
|
+
- Design integration testing that covers complete facade interaction scenarios
|
|
116
|
+
- Support performance testing under realistic load conditions
|
|
117
|
+
- Enable chaos engineering testing for resilience validation
|
|
118
|
+
|
|
119
|
+
### Mock and Simulation Patterns
|
|
120
|
+
- Create sophisticated mocking strategies for complex facade dependencies
|
|
121
|
+
- Design simulation capabilities for testing facade behavior under various conditions
|
|
122
|
+
- Support A/B testing for facade behavior changes
|
|
123
|
+
- Enable testing of failure scenarios and recovery patterns
|
|
124
|
+
|
|
125
|
+
## Best Practices
|
|
126
|
+
|
|
127
|
+
### Architectural Principles
|
|
128
|
+
- Maintain clear separation of concerns across facade layers
|
|
129
|
+
- Design for both horizontal and vertical scaling requirements
|
|
130
|
+
- Implement comprehensive monitoring and observability
|
|
131
|
+
- Plan for facade evolution and migration strategies
|
|
132
|
+
|
|
133
|
+
### Operational Excellence
|
|
134
|
+
- Provide detailed documentation for complex facade architectures
|
|
135
|
+
- Implement automated testing and deployment pipelines
|
|
136
|
+
- Support configuration management for complex facade behaviors
|
|
137
|
+
- Maintain clear operational procedures for complex facade management
|
|
138
|
+
|
|
139
|
+
## Common Pitfalls
|
|
140
|
+
|
|
141
|
+
### Over-Engineering
|
|
142
|
+
Avoid creating unnecessarily complex facade architectures that become harder to maintain than the systems they're meant to simplify.
|
|
143
|
+
|
|
144
|
+
### Performance Overhead
|
|
145
|
+
Prevent facade layers from introducing significant performance overhead that negates the benefits of system simplification.
|
|
146
|
+
|
|
147
|
+
### Tight Coupling
|
|
148
|
+
Avoid creating tight coupling between facade layers that reduces system flexibility and makes changes difficult.
|
|
149
|
+
|
|
150
|
+
### Monitoring Gaps
|
|
151
|
+
Ensure comprehensive monitoring coverage across all facade layers to prevent issues from going undetected in complex architectures.
|
|
152
|
+
|
|
153
|
+
*Complete complex facade examples: samples/complex-facade-patterns.md*
|
|
154
|
+
*Basic facade patterns: facade-pattern-al-implementation.md*
|
|
155
|
+
*Enterprise integration: enterprise-integration-patterns.md*
|