Skip to content

SDLC & SBOM Policy

This document describes XBert’s software development lifecycle, including secure development practices, testing standards, release management, and software supply chain transparency via a Software Bill of Materials (SBOM).

This policy covers all software developed, maintained, and deployed by XBert, including:

  • xbert-app-ui - Angular frontend application
  • xbert-app-server - C# ASP.NET Core backend API
  • xbert-app-processing - Background processing and AI services
  • xbert-fabric - Azure Functions data processing layer
  • xbert-capture - Mobile and web client communication app
  • XBert.Mcp.Server - MCP server for AI tool integrations
  • mem0-service - AI memory service (Python)

XBert uses an Agile development methodology with:

  • Weekly sprints for feature development
  • Daily stand-ups for progress review and issue triage
  • Sprint planning for prioritisation of features, bugs, and security items
  • Security and performance items are evaluated at the daily stand-up level and can be prioritised independently of the feature release process
ActivityDescription
Requirements gatheringFeatures defined in GitHub Issues with acceptance criteria
Security considerationsThreat modelling for features handling sensitive data or new integrations
Architecture reviewTechnical design reviewed by senior engineers before implementation
Privacy impactFeatures processing personal data assessed against Australian Privacy Principles
PracticeImplementation
Source controlGit (GitHub Enterprise, private repositories)
Branching strategyFeature branches with PR to main; release branches for deployment
Code ownershipAll source code owned and maintained solely by XBert Pty Ltd
Coding standardsC#: PascalCase public, _camelCase private; Angular: Angular style guide; Australian English spelling
Secure codingOWASP Top 10 awareness; input validation; parameterised queries; output encoding
Secrets managementNo secrets in source code; all secrets in Azure Key Vault
Developer environmentAll development located within Australia by XBert employees under NSW law contracts
RequirementDetails
Peer reviewAll changes require at least one peer review via GitHub Pull Request
Branch protectionMain branch protected; direct pushes prohibited
Review checklistFunctionality, security, performance, test coverage
Automated checksCI pipeline must pass before merge (build, lint, tests, security scans)
Test TypeScopeAutomation
Unit testsIndividual functions and servicesAutomated in CI pipeline
Integration testsAPI endpoints and service interactionsAutomated in CI pipeline
Security scanningStatic code analysis, dependency vulnerabilitiesAutomated in CI pipeline (OWASP tools, Dependabot)
Penetration testingFull application security assessmentAnnual (external provider)
Regression testingEnd-to-end feature validationAutomated (Playwright) + manual
StageEnvironmentPurposeDeployment Method
BuildCI pipelineCompile, test, scanAutomated (Azure DevOps)
DevelopmentDev environmentDeveloper integration testingAutomated deployment on PR merge
StagingStaging environmentPre-production validationAutomated deployment; manual approval gate
ProductionProduction environmentLive customer-facingAutomated deployment via slot swap (zero-downtime)

Key release management practices:

  • CI/CD pipeline: Azure DevOps with automated build, test, and deployment
  • Deployment slots: Azure App Service slots for zero-downtime deployments
  • Rollback: Immediate rollback capability via slot swap
  • Feature flags: Used for gradual rollout of significant features
  • No manual deployments: All production changes flow through the CI/CD pipeline
  • Audit trail: All deployments are logged and auditable in Azure DevOps
ActivityFrequencyTool
Production monitoringContinuousAzure Monitor, Application Insights, Sentry
Error trackingContinuousSentry
Uptime monitoringContinuousPingdom
Performance monitoringContinuousApplication Insights
Customer feedbackOngoingIntercom
Security patchingPer Patch Management PolicyGitHub Dependabot, Defender for Cloud
PracticeDescription
Input validationAll user input validated at API boundaries
Parameterised queriesEntity Framework ORM prevents SQL injection
Output encodingAngular’s built-in XSS protection; server-side encoding
AuthenticationOAuth 2.0 via Auth0; JWT token validation
AuthorisationRole-based access control; tenant isolation
Error handlingStructured error responses; no sensitive data in error messages
LoggingSecurity events logged; no secrets or PII in logs
Dependency managementAutomated vulnerability scanning; pinned versions
Code Commit
|
v
[GitHub Branch Protection] -- PR required, review required
|
v
[Automated Build] -- Compile, restore dependencies
|
v
[Security Scanning] -- OWASP tools, dependency vulnerability check
| npm audit, dotnet list package --vulnerable
v
[Automated Tests] -- Unit tests, integration tests
|
v
[Code Review] -- Peer review approval required
|
v
[Merge to Main] -- Protected branch merge
|
v
[Staging Deployment] -- Automated; manual validation gate
|
v
[Production Deployment] -- Slot swap (zero-downtime)
|
v
[Post-Deploy Monitoring] -- Sentry, Application Insights, Pingdom

XBert maintains visibility into its software supply chain through dependency management tools and automated scanning. The SBOM covers all third-party libraries, frameworks, and runtime dependencies used across XBert applications.

RepositoryPackage ManagerSBOM SourceFormat
xbert-app-uinpmpackage-lock.jsonnpm lockfile v3
xbert-app-serverNuGetpackages.lock.json / .csprojNuGet package references
xbert-app-processingNuGetpackages.lock.json / .csprojNuGet package references
xbert-fabricNuGetpackages.lock.json / .csprojNuGet package references
xbert-capturenpmpackage-lock.jsonnpm lockfile v3 (Expo/React Native)
mem0-servicepiprequirements.txtpip freeze
ComponentFrameworkVersion (Current)
Frontend (main)AngularSee xbert-app-ui package.json
MCP GatewayASP.NET Core (.NET)See xbert-mcp-gateway .csproj
Backend APIASP.NET Core (.NET)See xbert-app-server .csproj
Background processingASP.NET Core (.NET)See xbert-app-processing .csproj
Data processingAzure Functions (.NET)See xbert-fabric .csproj
Mobile appReact Native (Expo)See xbert-capture package.json
AI memory servicePython + Mem0See mem0-service requirements.txt
AI agentsMicrosoft Agent FrameworkSee xbert-app-processing .csproj
  • SBOM data is generated from lock files and package manifests as part of the CI/CD build process
  • SBOMs are maintained in native package manager formats (npm lockfile v3, NuGet package references, pip requirements)
  • Standardised SBOM exports (CycloneDX JSON) can be generated on request for enterprise customers — contact security@xbert.io
  • SBOMs are updated with every production deployment, ensuring they reflect the current dependency state
  • New dependencies require review and approval by a senior engineer for security posture, maintenance status, and licence compatibility before inclusion
ControlImplementation
Dependency pinningLock files committed to source control; no floating versions
Vulnerability scanningGitHub Dependabot (continuous), npm audit, dotnet vulnerable package check
Licence complianceReviewed during dependency addition; no copyleft licences in distributed code
Private registryNuGet and npm packages sourced from official public registries
Code signingGitHub verified commits encouraged
Dependency reviewNew dependencies reviewed for maintenance status, security posture, and licence
RoleResponsibility
CTOPolicy owner; approves SDLC process changes; oversees security practices
Development ManagerManages release process; enforces code review and testing standards
DevelopersFollow secure coding practices; write tests; review peer code; maintain dependencies
QAExecute regression and exploratory testing; maintain automated test suites

This policy supports compliance with:

  • ISO 27001 Annex A.14 (system acquisition, development and maintenance)
  • OWASP Secure Development Guidelines
  • Essential Eight - Application patching, application control
  • Privacy Act 1988 (Cth) - secure handling of personal information in development
VersionDateChanges
1.0April 2026Initial creation