We use cookies on our website to analyze website usage and to help secure the website against misuse.
Advertising and functional cookies are not used in our site or our web application products.
By clicking “Accept Essential Cookies Only”, you consent to us placing these cookies.
Mandatory architectural and security standards for third-party integrations connecting to xAssets instances.
1. Introduction
1.1 Purpose and Scope
This document covers the mandatory architectural and security standards for third-party integrations
connecting to an xAssets instance. These standards ensure server resource protection, high-availability, data integrity, data security,
and compliance with industry security frameworks including the OWASP API Security Top 10 (2023).
All integrations whether custom-built, developed by partners, or utilising AI agents,
must comply with these requirements before deployment to production environments.
1.2 Intended Audience
Third-party developers building integrations with xAssets
Customer IT teams implementing API-based workflows
Must or required - Absolute requirement. Non-compliance blocks production deployment
Should or recommended - Best practice. Exceptions require documented justification
May or optional - Discretionary. Implementation encouraged but not mandatory
2. Authentication and Authorization
2.1 Credential Types
xAssets supports the following authentication mechanisms:
Method
Use Case
Security Level
OAuth 2.0 (Client Credentials)
Server-to-server integrations
recommended
Bearer Token (JWT)
Session-based access with expiry
recommended
API Key
Simple integrations, monitoring tools
Acceptable with restrictions
2.2 Token Lifecycle Management
API keys must be stored in encrypted files, secrets managers, or hardware security modules (HSM).
In memory storage should use encrypted variables such as SecureString objects
Hard-coding credentials in source files is prohibited.
Tokens should have a maximum lifetime of 24 hours for interactive sessions, 90 days for service accounts (a maximum of 90 days unless shorter lifetimes are enforced by policy).
Integrations must implement token refresh logic before expiry to avoid service interruption.
Compromised credentials must be reported immediately and revoked within 1 hour of detection.
2.3 Object-Level Authorization (OWASP API1)
Critical Requirement: Broken Object Level Authorization (BOLA) is the #1 API vulnerability worldwide.
Integrations must implement proper ownership validation.
Every API request accessing a specific object (e.g., AssetID=1001) must validate that the authenticated user/service
has permission to access that specific object.
Integrations must NOT assume that authentication alone grants access to any object ID.
Sequential ID enumeration attacks must be prevented-integrations should NOT iterate through object IDs to discover records.
Access control checks must occur on every request, not just at session establishment.
2.4 Function-Level Authorization (OWASP API5)
API credentials must be scoped to specific permitted operations (read, write, delete).
Integrations must document all endpoints they require access to; requests to undocumented endpoints will be rejected.
Administrative functions must require elevated credentials separate from standard API access.
The principle of least privilege must be applied-request only the minimum permissions necessary.
Error messages must remove file paths and secure user information
2.5 Multi-Factor Authentication
Interactive user sessions accessing the API through developer portals should require MFA.
Service accounts may be exempted from MFA but must use IP whitelisting or certificate-based authentication as compensating controls.
3. Transport and Data Security
3.1 TLS Requirements
All API traffic must be encrypted using TLS 1.2 or higher.
TLS 1.0 and 1.1 are not supported and connections will be rejected.
Self-signed certificates in production environments are not permitted.
Certificate pinning is recommended for high-security integrations.
3.2 Cipher Suite Requirements
Integrations must support modern cipher suites with a minimum of 128 bit encryption. The following are prohibited:
RC4, DES, 3DES cipher suites
MD5 or SHA-1 for certificate signatures
Key exchange without forward secrecy
3.3 Payload Security
Sensitive data within payloads (e.g., serial numbers, financial values) should be encrypted at the field level where regulatory requirements apply.
API responses must NOT include credentials, tokens, personal data, or internal system identifiers in error messages.
3.4 PII Handling and Masking
Personally Identifiable Information (PII) must be identified and classified before transmission.
PII should be masked or tokenised in logs, debug output, and non-production environments.
Full PII must NOT be written to unencrypted storage, temporary files, or browser local storage.
4. API Consumption Standards
4.1 Rate Limiting and Throttling
xAssets enforces rate limits per API credential. Current limits are communicated via response headers:
X-RateLimit-Limit: Maximum requests permitted per window
X-RateLimit-Remaining: Requests remaining in current window
X-RateLimit-Reset: Unix timestamp when the window resets
Integrations must monitor these headers and throttle requests proactively.
When receiving HTTP 429 Too Many Requests, integrations must implement exponential backoff:
Initial retry: 1 second
Subsequent retries: Double the previous wait (2s, 4s, 8s...)
Maximum backoff: 60 seconds
Maximum retry attempts: 5
Detection Of
Credential sharing
Abnormal Request Patterns
Automation behaving outside of its declared use case
xAssets reserves the right to suspend credentials without notice for abuse where clear evidence of misuse exists.
4.2 Pagination Requirements (OWASP API4)
Mandatory: No request may fetch unbounded datasets. Unrestricted resource consumption is a critical API vulnerability.
All GET requests returning collections must implement pagination.
Default page size: 100 records. Integrations should NOT override this without justification.
Maximum page size: 1,000 records. Requests exceeding this will be rejected.
Integrations must handle pagination tokens/cursors to retrieve complete datasets across multiple requests.
4.3 Delta Query Usage
Integrations should utilise ModifiedDate filters to fetch only changed records rather than full-table refreshes.
Initial synchronisation may retrieve full datasets; subsequent syncs must be incremental.
Delta queries reduce load on both client and server, improving performance for all tenants.
4.4 Idempotency Requirements
POST and PUT operations should include an Idempotency-Key header to prevent duplicate record creation from retry loops.
The server will cache responses for idempotent requests for 24 hours.
Integrations must generate unique idempotency keys per logical operation (UUIDs recommended).
4.5 Request Timeout Handling
Client-side timeouts should be set to 30 seconds for standard operations, 120 seconds for bulk operations.
Integrations must NOT retry timed-out write operations without idempotency keys.
Long-running operations should use asynchronous patterns with status polling.
4.6 Error Handling and Information Disclosure (OWASP API8)
xAssets returns standardised error responses. Integrations must handle all HTTP status codes appropriately:
Code
Meaning
Client Action
400
Bad Request
Fix request syntax/validation
401
Unauthorised
Refresh credentials
403
Forbidden
Check permissions; do not retry
404
Not Found
Verify resource exists
429
Rate Limited
Backoff and retry
500
Server Error
Retry with backoff; report if persistent
503
Service Unavailable
Retry after Retry-After header value
Error responses intentionally omit internal details (stack traces, SQL errors, internal paths) to prevent information leakage.
Integrations must NOT expose raw API error messages to end users without sanitisation.
5. Input Validation and Output Controls
5.1 Request Validation Requirements
All incoming data must be validated against a strict schema before processing.
Content-Type headers must match the actual payload format; mismatches will be rejected.
Request body size must NOT exceed 10MB for standard operations, 100MB for bulk imports.
Field-level validation:
String fields: Maximum 4,000 characters unless otherwise documented
Numeric fields: Range validation per field definition
Date fields: ISO 8601 format required
Email fields: RFC 5322 validation
5.2 Injection Prevention
SQL Injection: xAssets uses parameterised queries internally. Integrations must NOT construct dynamic queries by concatenating user input.
XSS Prevention: Data submitted via API that will be rendered in UI must be sanitised. The API will reject payloads containing:
<script> tags or event handlers (onclick, onerror, etc.)
JavaScript protocol handlers (javascript:)
Data URIs with executable content
SSRF Prevention (OWASP API7): Where integrations accept URLs as input:
must validate against a whitelist of permitted domains
must block private IP ranges (10.x.x.x, 172.16-31.x.x, 192.168.x.x, 127.x.x.x)
must NOT allow user-supplied URLs to be fetched server-side without validation
5.3 Field-Level Data Exposure Controls (OWASP API3)
Integrations should request only the fields they require using field selection parameters.
"SELECT *" patterns are discouraged-APIs may return additional fields in future versions, potentially exposing unintended data.
Sensitive fields (e.g., purchase prices, warranty costs) require explicit permission grants in the API credential scope.
Executable and script files (.exe, .bat, .sh, .ps1, etc.) are prohibited
File names must be sanitised to remove path traversal characters (..\, ../, etc.)
6. Database and Tenant Isolation
6.1 Schema Isolation Requirements
API credentials are scoped to a specific tenant/database. Cross-tenant queries are architecturally impossible.
Integrations must NOT attempt to "discover" or traverse sibling databases on shared infrastructure.
Integrations must NOT attempt to access database system tables.
Connection strings provided to integrations are valid only for the assigned tenant.
6.2 Cross-Tenant Access Prevention
Each API request is validated against the tenant context of the credential.
Attempts to access objects belonging to other tenants will return 403 Forbidden with no additional information.
Suspicious access patterns (repeated 403s, ID enumeration) will trigger security alerts and potential credential suspension.
6.3 Write-Back Safety Controls
Any POST, PUT, or DELETE action should implement a "Dry Run" or "Preview" mode for testing before live execution.
Include X-DryRun: true header to validate operations without committing changes.
Bulk operations must support transaction rollback on partial failure.
Delete operations should use soft-delete patterns where supported, with configurable retention periods.
7. AI Agent-Specific Requirements
Enhanced Scrutiny: AI Agents present unique risks due to their non-deterministic nature, potential for hallucination, and vulnerability to prompt injection attacks. All requirements in this section are in addition to the General API standards above.
7.1 Agent Identity and Authentication
AI agents must authenticate using dedicated service credentials, not shared or user-impersonation tokens.
Agent credentials must be clearly identifiable in audit logs (e.g., prefix AI-AGENT-).
Each distinct AI agent or workflow should have its own credential set for granular access control and audit trails.
Agent-to-agent communication (where multiple AI components interact) must use authenticated channels with mutual TLS or signed requests.
7.2 Loop and Recursion Control
Maximum Step Limit: Agents must have a hard-coded maximum iteration cap. recommended limit: 10 sequential API calls per user prompt. Absolute maximum: 25 calls.
Time-to-Live (TTL): Every agent request chain must have a timeout threshold. recommended: 120 seconds. Maximum: 300 seconds.
Cost Controls: Agents must implement budget caps to prevent runaway costs from hallucination loops:
Per-session API call limit
Per-day aggregate limit per credential
Alerting at 80% threshold
Agents must NOT spawn recursive sub-agents without explicit depth limits.
7.3 Prompt Injection Prevention
OWASP AI Risk: Prompt injection is the leading vulnerability in AI-integrated systems. Both direct and indirect injection vectors must be addressed.
7.3.1 Direct Prompt Injection
User-provided text must be sanitised before being processed by agent logic.
Inputs must be stripped of potential "jailbreak" commands including:
Instructions to "ignore previous instructions"
Attempts to redefine agent role or permissions
Requests to output system prompts or configuration
Commands disguised as data (e.g., JSON with embedded instructions)
Agents should use a secondary classifier model to evaluate inputs for malicious intent before processing.
7.3.2 Indirect Prompt Injection
Data retrieved from the xAssets database or external sources must be treated as untrusted input.
Malicious instructions may be embedded in:
Asset descriptions or notes fields
Imported CSV/Excel data
Email content or ticket descriptions
Document attachments processed by the agent
Agents must NOT execute instructions found in retrieved data without explicit validation.
System prompts must clearly delineate trusted instructions from user/data content.
7.4 System Prompt Hardening
Integration code must include "System Instructions" that explicitly forbid:
Unauthorised data deletions
Schema modifications
Cross-database queries
Credential or token disclosure
Execution of arbitrary code
System prompts should be versioned and immutable at runtime.
Changes to system prompts must go through the same change control process as code deployments.
7.5 Output Filtering and Validation
Agent outputs must be validated before being returned to users or written to the database.
Outputs must be filtered for:
Accidental PII disclosure
Internal system information (connection strings, paths, credentials)
Hallucinated data that contradicts source records
Content that violates organisational policies
Consider using a secondary "safety model" to review agent outputs before delivery.
HTML/JavaScript in agent outputs must be escaped before rendering in browsers to prevent XSS.
7.6 Session and Context Isolation
Stateless Context Management: Agents must ensure that "conversation memory" is isolated per user session.
Under no circumstances should User A's data be accessible via User B's session context.
Context windows should be limited to the minimum necessary conversation history.
Session data must be cleared upon session termination or timeout.
Agents must NOT share learned behaviours or patterns across tenant boundaries.
7.7 Data Privacy and PII Protection
Zero-Persistence of PII: Sensitive data retrieved via API must NOT be:
Written to unencrypted logs
Stored in local text files or caches
Transmitted to AI model training pipelines
Included in error reports or telemetry
PII should be masked or tokenised before being passed to AI models, with restoration only on authorised output.
Conversation logs containing user queries must be encrypted at rest and have defined retention limits.
AI agents must NOT transmit xAssets data to non-declared external endpoints
7.8 Human-in-the-Loop Requirements
Certain operations must require human approval before execution:
Risk Tier
Operations
Approval Requirement
Low
Read operations, report generation, data summarisation
None-autonomous execution permitted
Medium
Field updates, status changes, record creation
optional-configurable per deployment
High
Bulk updates, record deletion, financial field modifications
Integrations must document which AI model version is in use (e.g., "GPT-4-turbo-2024-04-09", "Claude-3-Sonnet").
Model upgrades must NOT occur automatically in production; changes require testing and approval.
Behaviour changes between model versions must be evaluated for security implications.
Fallback behaviour must be defined for when AI services are unavailable (graceful degradation, not silent failure).
7.10 Sandboxed Execution
Where agents generate or execute code, this must occur in sandboxed environments.
Sandboxes must:
Have no network access except to whitelisted endpoints
Run with minimal filesystem permissions
Have resource limits (CPU, memory, execution time)
Be destroyed after each execution
Model-generated code must NOT be trusted-treat as untrusted input.
8. Logging, Monitoring and Observability
8.1 required Audit Events
The following events must be logged with timestamp, user/credential ID, source IP, and correlation ID:
Authentication attempts (success and failure)
Authorisation failures (403 responses)
All create, update, and delete operations
Rate limit violations
Input validation failures
API errors (4xx and 5xx responses)
For AI agents: Decision trace including inputs, tool invocations, parameters (redacted),
outputs, and final actions. Raw model chain-of-thought must not be persisted
8.2 Log Content Standards
Logs must include:
Timestamp (ISO 8601 format, UTC)
Correlation/Request ID (unique per request chain)
Credential identifier (not the credential itself)
Source IP address
HTTP method and endpoint
Response status code
Response time
Logs must NOT include:
Raw credentials, tokens, or API keys
Full request/response bodies containing PII
Password or secret values
Credit card or payment information
8.3 Retention Requirements
Minimum retention: 90 days for operational logs
Security audit logs: 1 year minimum (or as required by applicable regulations)
Logs must be stored in tamper-evident format (append-only, signed, or blockchain-anchored)
Log deletion must follow secure disposal procedures
8.4 AI Reasoning Chain Visibility
For AI agent integrations, additional observability is required:
Each agent "thought" or reasoning step must be logged
Tool/API invocations must be traceable to the triggering reasoning step
Token usage and cost per request should be tracked
Logs must support replay and debugging of agent decisions
Confidence scores (where available) should be recorded
Response SLA: Acknowledgement within 24 hours; triage within 72 hours
12.2 Vulnerability Reporting
xAssets operates a responsible disclosure programme.
Discovered vulnerabilities should be reported privately before public disclosure.
Reporters will be credited (if desired) once the vulnerability is resolved.
12.3 Incident Communication
In the event of a security incident affecting integrations, xAssets will:
Notify affected parties within 72 hours of confirmation
Provide incident details appropriate to the severity
Issue guidance on mitigation actions required by integration partners
Publish post-incident review (where appropriate)
12.4 Integration Partner Obligations
Suspected security incidents involving xAssets data must be reported within 24 hours of detection.
Integration partners must cooperate with incident investigation.
Compromised credentials must be revoked immediately and reported.
13. Pre-Production Audit Checklist
Before moving to production, a Code Review will be conducted by xAssets.
The audit includes the use of LAN based AI tools owned by xAssets (your code is not exposed to any third party).
The audit will review your source code and verify compliance with the following requirements:
Authentication and Authorization
Requirement
Priority
Status
Credentials stored securely (not hard-coded)
Critical
Pass Fail N/A
Token refresh logic implemented
High
Pass Fail N/A
Object-level authorization validated
Critical
Pass Fail N/A
Least-privilege principle applied
High
Pass Fail N/A
Transport and Data Security
Requirement
Priority
Status
TLS 1.2+ enforced for all connections
Critical
Pass Fail N/A
No self-signed certificates in production
Critical
Pass Fail N/A
PII handling compliant with policy
High
Pass Fail N/A
API Consumption
Requirement
Priority
Status
Pagination implemented for all queries
Critical
Pass Fail N/A
Rate limit handling with exponential backoff
Critical
Pass Fail N/A
Delta query usage for synchronisation
High
Pass Fail N/A
Idempotency keys for write operations
Medium
Pass Fail N/A
Error handling does not leak internal details
High
Pass Fail N/A
Input Validation and Security
Requirement
Priority
Status
Input validation against defined schema
Critical
Pass Fail N/A
SQL injection prevention verified
Critical
Pass Fail N/A
XSS prevention verified
Critical
Pass Fail N/A
SSRF controls in place (if applicable)
High
Pass Fail N/A
Tenant Isolation
Requirement
Priority
Status
No cross-tenant data access possible
Critical
Pass Fail N/A
No database discovery or traversal attempts
Critical
Pass Fail N/A
Dry-run mode available for write operations
Medium
Pass Fail N/A
AI Agent Requirements (If Applicable)
Requirement
Priority
Status
Maximum iteration cap implemented
Critical
Pass Fail N/A
Request timeout (TTL) enforced
Critical
Pass Fail N/A
Direct prompt injection protection
Critical
Pass Fail N/A
Indirect prompt injection protection
Critical
Pass Fail N/A
System prompt hardening verified
High
Pass Fail N/A
Output filtering implemented
High
Pass Fail N/A
Session isolation per user
Critical
Pass Fail N/A
PII not persisted in logs/caches
Critical
Pass Fail N/A
Human-in-the-loop for high-risk operations
High
Pass Fail N/A
Reasoning chain logged for audit
High
Pass Fail N/A
Model version documented
Medium
Pass Fail N/A
Logging and Observability
Requirement
Priority
Status
required audit events logged
High
Pass Fail N/A
Sensitive data excluded from logs
Critical
Pass Fail N/A
Log retention meets requirements
Medium
Pass Fail N/A
Correlation IDs implemented
Medium
Pass Fail N/A
Compliance
Requirement
Priority
Status
Data residency requirements documented
High
Pass Fail N/A
Third-party sub-processors disclosed
High
Pass Fail N/A
Data deletion capability confirmed
High
Pass Fail N/A
Document Control
This document is maintained by xAssets and will be updated as security requirements evolve. Integration partners are responsible for monitoring updates and maintaining compliance with the current version.
For questions regarding these standards, please contact us via the form below
Contact Us
What’s Included?
Demo shaped to your needs
Free instance
Free Instances Explained
Free instances are free forever and can show demo data or your data.
IT asset management free instances
Single user, 100 endpoints, 1,000 total assets
Includes network discovery (optional)
SNMP based devices are included free
Single Sign On (SSO)
Does not support Intune, SCCM, procurement, contracts, barcoding, configuration, or workflow
Fixed asset management free instances
Single user, 1,000 fixed assets
Includes all fixed asset register features
Single Sign On (SSO)
Does not support depreciation, CIP, procurement, barcoding, planned maintenance, configuration, or workflow