Skip to content

Kafka Significant Events

Available since: version 7.0.1

The Kafka Significant Events are a centralized event system in the MetalSoft platform that emit structured events to Kafka for external integration. These events capture critical infrastructure changes and security actions across the platform and allow 3rd party developers and clients to develop integrations with other enterprise systems and automation solutions.

  1. Event Categories
    • Server Management: Server lifecycle events (creation, updates, deletion, registration)
    • Security: User and authentication events (login, credential changes, access modifications)
    • Network Device Management: Network infrastructure events (device registration, fabric assignments)
    • Instance Management: Instance and DNS lifecycle events (updates, deletions)

Each significant event follows the CloudEvent specification and contains the following structure:

{
"id": "unique-event-identifier",
"time": "2025-01-01T12:00:00.000Z",
"type": "dot.separated.event.type",
"source": "https://metalsoft.io/microservice-name",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
// Event-specific payload with string values
}
}

Events related to server lifecycle management.

Event TypeDescriptionData Structure
server.deletedServer permanently deleted{"serverId": "string", "serverUUID": "string", "serverClass": "string", "serverStatus": "string"}
server.updatedServer configuration updated{"serverId": "string", "userId": "string", "changes": {"previousState": {}, "currentState": {}}}
server.credentials.updatedServer credentials changed{"serverId": "string", "userId": "string", "serverManagementAddress": "string"}
server.registeredServer successfully registered{"serverId": "string", "serverStatus": "string", "serverTypeId": "string", "siteId": "string", "userId": "string"}
server.registration.initiatedServer registration process started{"serverId": "string", "managementAddress": "string", "siteId": "string"}
server.reregistration.initiatedServer re-registration started{"serverId": "string", "managementAddress": "string", "siteId": "string"}
server.production.registration.initiatedProduction server registration started{"serverId": "string", "managementAddress": "string", "siteId": "string"}
server.decommissionedServer decommissioned{"serverId": "string", "serverUUID": "string", "serverClass": "string", "serverStatus": "string", "serverTypeId": "string"}
server.production.registeredServer registered for production use{"serverId": "string", "serverStatus": "string", "serverTypeId": "string", "siteId": "string", "userId": "string"}

User and authentication-related events from the auth microservice.

Event TypeDescriptionData Structure
user.createdNew user account created{"userId": "string", "userEmail": "string", "loggedInUserId": "string", "loggedInUserEmail": "string", "message": "string"}
user.credentials.changedUser password/credentials updated{"userId": "string", "userEmail": "string", "loggedInUserId": "string", "loggedInUserEmail": "string", "message": "string"}
user.suspendedUser account suspended{"userId": "string", "userEmail": "string", "loggedInUserId": "string", "loggedInUserEmail": "string", "message": "string"}
user.unsuspendedUser account reactivated{"userId": "string", "userEmail": "string", "loggedInUserId": "string", "loggedInUserEmail": "string", "message": "string"}
user.password.reset.requestedPassword reset initiated{"userId": "string", "userEmail": "string", "loggedInUserId": "string", "loggedInUserEmail": "string", "message": "string"}
user.email.updatedUser email address changed{"userId": "string", "userEmail": "string", "loggedInUserId": "string", "loggedInUserEmail": "string", "message": "string"}
user.email.verifiedUser email address verified{"userId": "string", "userEmail": "string", "loggedInUserId": "string", "loggedInUserEmail": "string", "message": "string"}
user.api.key.regeneratedUser API key regenerated{"userId": "string", "userEmail": "string", "loggedInUserId": "string", "loggedInUserEmail": "string", "message": "string"}
user.ssh.key.createdSSH key added to user account{"userId": "string", "userEmail": "string", "loggedInUserId": "string", "loggedInUserEmail": "string", "message": "string"}
user.ssh.key.deletedSSH key removed from user account{"userId": "string", "userEmail": "string", "loggedInUserId": "string", "loggedInUserEmail": "string", "message": "string"}
user.delegate.removedUser delegate access removed{"userId": "string", "userEmail": "string", "loggedInUserId": "string", "loggedInUserEmail": "string", "message": "string"}
user.delegate.addedUser delegate access granted{"userId": "string", "userEmail": "string", "loggedInUserId": "string", "loggedInUserEmail": "string", "message": "string"}
user.unarchivedUser account restored from archive{"userId": "string", "userEmail": "string", "loggedInUserId": "string", "loggedInUserEmail": "string", "message": "string"}
user.archivedUser account archived{"userId": "string", "userEmail": "string", "loggedInUserId": "string", "loggedInUserEmail": "string", "message": "string"}
user.2fa.enabledTwo-factor authentication enabled{"userId": "string", "userEmail": "string", "loggedInUserId": "string", "loggedInUserEmail": "string", "message": "string"}
user.2fa.disabledTwo-factor authentication disabled{"userId": "string", "userEmail": "string", "loggedInUserId": "string", "loggedInUserEmail": "string", "message": "string"}
user.access.level.setUser access level changed{"userId": "string", "userEmail": "string", "loggedInUserId": "string", "loggedInUserEmail": "string", "message": "string"}

Network infrastructure events from the inventory microservice.

Event TypeDescriptionData Structure
network.device.createdNew network device added{"networkDeviceId": "string", "managementAddress": "string", "identifierString": "string", "driver": "string", "position": "string", "siteId": "string"}
network.device.deletedNetwork device permanently removed{"networkDeviceId": "string", "position": "string", "siteId": "string", "identifierString": "string", "userIdAuthenticated": "string"}
network.device.registeredNetwork device successfully registered{"networkDeviceId": "string", "managementAddress": "string", "identifierString": "string", "driver": "string", "position": "string", "siteId": "string"}
network.device.registration.initiatedNetwork device registration started{"networkDeviceId": "string", "managementAddress": "string", "serialNumber": "string", "chassisIdentifier": "string", "managementMacAddress": "string"}
network.device.archivedNetwork device archived{"networkDeviceId": "string", "userIdAuthenticated": "string"}
network.device.assigned.to.fabricDevice assigned to network fabric{"fabricId": "string", "networkDeviceIds": "string[]", "fabricName": "string"}
network.device.removed.from.fabricDevice removed from network fabric{"fabricId": "string", "networkDeviceIds": "string[]", "fabricName": "string"}
network.device.replacedNetwork device replaced with another{"oldNetworkDeviceId": "string", "newNetworkDeviceId": "string"}
network.device.credentials.updatedDevice credentials changed{"networkDeviceId": "string", "managementAddress": "string", "identifierString": "string", "driver": "string", "position": "string", "siteId": "string", "userIdAuthenticated": "string"}

Instance and DNS lifecycle events from the orchestrator microservice.

Event TypeDescriptionData Structure
instance.array.dns.updatedInstance array DNS records updated{"instanceArrayId": "string", "infrastructureId": "string", "dnsRecords": "object[]", "userIdAuthenticated": "string"}
instance.dns.updatedInstance DNS records updated{"instanceId": "string", "infrastructureId": "string", "dnsRecords": "object[]", "userIdAuthenticated": "string"}
instance.array.dns.deletedInstance array DNS records deleted{"instanceArrayId": "string", "infrastructureId": "string", "userIdAuthenticated": "string"}
instance.dns.deletedInstance DNS records deleted{"instanceId": "string", "infrastructureId": "string", "userIdAuthenticated": "string"}

Note: All examples below show the complete CloudEvent format as it appears in Kafka. Each event includes the CloudEvent metadata (id, time, type, source, specversion, datacontenttype) and the event-specific data in the data field. Numeric values are serialized as strings in the JSON format.

{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "server.registration.initiated",
"source": "https://metalsoft.io/inventory-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"serverId": "123",
"managementAddress": "192.168.1.100",
"siteId": "1"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "server.registered",
"source": "https://metalsoft.io/inventory-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"serverId": "123",
"serverStatus": "AVAILABLE",
"serverTypeId": "25",
"siteId": "1",
"userId": "456"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "server.reregistration.initiated",
"source": "https://metalsoft.io/inventory-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"serverId": "123",
"managementAddress": "192.168.1.100",
"siteId": "1"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "server.production.registration.initiated",
"source": "https://metalsoft.io/inventory-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"serverId": "123",
"managementAddress": "192.168.1.100",
"siteId": "1"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "server.production.registered",
"source": "https://metalsoft.io/inventory-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"serverId": "123",
"serverStatus": "USED",
"serverTypeId": "25",
"siteId": "1",
"userId": "456"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "server.updated",
"source": "https://metalsoft.io/inventory-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"serverId": "123",
"userId": "456",
"changes": {
"previousState": {
"serverStatus": "UNAVAILABLE",
"serverClass": "UNKNOWN"
},
"currentState": {
"serverStatus": "AVAILABLE",
"serverClass": "BIGDATA"
}
}
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "server.credentials.updated",
"source": "https://metalsoft.io/inventory-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"serverId": "123",
"userId": "456",
"serverManagementAddress": "192.168.1.100"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "server.decommissioned",
"source": "https://metalsoft.io/inventory-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"serverId": "123",
"serverUUID": "550e8400-e29b-41d4-a716-446655440000",
"serverClass": "BIGDATA",
"serverStatus": "DECOMMISSIONED",
"serverTypeId": "25"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "server.deleted",
"source": "https://metalsoft.io/inventory-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"serverId": "123",
"serverUUID": "550e8400-e29b-41d4-a716-446655440000",
"serverClass": "BIGDATA",
"serverStatus": "DECOMMISSIONED"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "user.created",
"source": "https://metalsoft.io/auth-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"userId": "123",
"userEmail": "user@example.com",
"loggedInUserId": "456",
"loggedInUserEmail": "admin@example.com",
"message": "New user account created"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "user.credentials.changed",
"source": "https://metalsoft.io/auth-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"userId": "123",
"userEmail": "user@example.com",
"loggedInUserId": "456",
"loggedInUserEmail": "admin@example.com",
"message": "User password updated successfully"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "user.password.reset.requested",
"source": "https://metalsoft.io/auth-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"userId": "123",
"userEmail": "user@example.com",
"loggedInUserId": "456",
"loggedInUserEmail": "admin@example.com",
"message": "Password reset initiated for user"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "user.suspended",
"source": "https://metalsoft.io/auth-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"userId": "123",
"userEmail": "user@example.com",
"loggedInUserId": "456",
"loggedInUserEmail": "admin@example.com",
"message": "User suspended due to policy violation"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "user.unsuspended",
"source": "https://metalsoft.io/auth-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"userId": "123",
"userEmail": "user@example.com",
"loggedInUserId": "456",
"loggedInUserEmail": "admin@example.com",
"message": "User account reactivated"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "user.email.updated",
"source": "https://metalsoft.io/auth-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"userId": "123",
"userEmail": "newemail@example.com",
"loggedInUserId": "456",
"loggedInUserEmail": "admin@example.com",
"message": "User email address changed from oldemail@example.com"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "user.email.verified",
"source": "https://metalsoft.io/auth-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"userId": "123",
"userEmail": "user@example.com",
"loggedInUserId": "123",
"loggedInUserEmail": "user@example.com",
"message": "Email address verified successfully"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "user.api.key.regenerated",
"source": "https://metalsoft.io/auth-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"userId": "123",
"userEmail": "user@example.com",
"loggedInUserId": "456",
"loggedInUserEmail": "admin@example.com",
"message": "API key regenerated for security purposes"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "user.ssh.key.created",
"source": "https://metalsoft.io/auth-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"userId": "123",
"userEmail": "user@example.com",
"loggedInUserId": "123",
"loggedInUserEmail": "user@example.com",
"message": "SSH key added to user account"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "user.ssh.key.deleted",
"source": "https://metalsoft.io/auth-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"userId": "123",
"userEmail": "user@example.com",
"loggedInUserId": "123",
"loggedInUserEmail": "user@example.com",
"message": "SSH key removed from user account"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "user.delegate.added",
"source": "https://metalsoft.io/auth-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"userId": "123",
"userEmail": "user@example.com",
"loggedInUserId": "456",
"loggedInUserEmail": "admin@example.com",
"message": "Parent user ID: 123 with email user@example.com added delegate with ID 789 with email delegate@example.com"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "user.delegate.removed",
"source": "https://metalsoft.io/auth-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"userId": "123",
"userEmail": "user@example.com",
"loggedInUserId": "456",
"loggedInUserEmail": "admin@example.com",
"message": "Delegate access revoked from user"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "user.2fa.enabled",
"source": "https://metalsoft.io/auth-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"userId": "123",
"userEmail": "user@example.com",
"loggedInUserId": "123",
"loggedInUserEmail": "user@example.com",
"message": "Two-factor authentication enabled"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "user.2fa.disabled",
"source": "https://metalsoft.io/auth-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"userId": "123",
"userEmail": "user@example.com",
"loggedInUserId": "123",
"loggedInUserEmail": "user@example.com",
"message": "Two-factor authentication disabled"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "user.access.level.set",
"source": "https://metalsoft.io/auth-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"userId": "123",
"userEmail": "user@example.com",
"loggedInUserId": "456",
"loggedInUserEmail": "admin@example.com",
"message": "User access level changed to Administrator"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "user.archived",
"source": "https://metalsoft.io/auth-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"userId": "123",
"userEmail": "user@example.com",
"loggedInUserId": "456",
"loggedInUserEmail": "admin@example.com",
"message": "User account archived"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "user.unarchived",
"source": "https://metalsoft.io/auth-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"userId": "123",
"userEmail": "user@example.com",
"loggedInUserId": "456",
"loggedInUserEmail": "admin@example.com",
"message": "User account restored from archive"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "network.device.created",
"source": "https://metalsoft.io/inventory-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"networkDeviceId": "123",
"managementAddress": "192.168.1.100",
"identifierString": "switch-rack-01",
"driver": "sonic_enterprise",
"position": "leaf",
"siteId": "456"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "network.device.registration.initiated",
"source": "https://metalsoft.io/inventory-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"networkDeviceId": "123",
"managementAddress": "192.168.1.100",
"serialNumber": "SN123456789",
"chassisIdentifier": "chassis-001",
"managementMacAddress": "00:1B:21:B4:6E:3A"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "network.device.registered",
"source": "https://metalsoft.io/inventory-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"networkDeviceId": "123",
"managementAddress": "192.168.1.100",
"identifierString": "switch-rack-01",
"driver": "sonic_enterprise",
"position": "leaf",
"siteId": "456"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "network.device.assigned.to.fabric",
"source": "https://metalsoft.io/inventory-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"fabricId": "42",
"networkDeviceIds": ["123", "124", "125"],
"fabricName": "production-fabric-1"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "network.device.removed.from.fabric",
"source": "https://metalsoft.io/inventory-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"fabricId": "42",
"networkDeviceIds": ["123", "124", "125"],
"fabricName": "production-fabric-1"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "network.device.credentials.updated",
"source": "https://metalsoft.io/inventory-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"networkDeviceId": "123",
"managementAddress": "192.168.1.100",
"identifierString": "switch-rack-01",
"driver": "sonic_enterprise",
"position": "leaf",
"siteId": "456",
"userIdAuthenticated": "789"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "network.device.replaced",
"source": "https://metalsoft.io/inventory-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"oldNetworkDeviceId": "100",
"newNetworkDeviceId": "200"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "network.device.archived",
"source": "https://metalsoft.io/inventory-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"networkDeviceId": "123",
"userIdAuthenticated": "456"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "network.device.deleted",
"source": "https://metalsoft.io/inventory-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"networkDeviceId": "123",
"position": "leaf",
"siteId": "siteId":"1",
"identifierString": "switch-rack-01",
"userIdAuthenticated": "456"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "instance.array.dns.updated",
"source": "https://metalsoft.io/orchestrator-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"instanceArrayId": "123",
"infrastructureId": "456",
"dnsRecords": [
{
"hostname": "web-server-01.example.com",
"type": "A",
"value": "192.168.1.10"
}
],
"userIdAuthenticated": "789"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "instance.dns.updated",
"source": "https://metalsoft.io/orchestrator-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"instanceId": "123",
"infrastructureId": "456",
"dnsRecords": [
{
"hostname": "database-01.example.com",
"type": "A",
"value": "192.168.1.20"
}
],
"userIdAuthenticated": "789"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "instance.array.dns.deleted",
"source": "https://metalsoft.io/orchestrator-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"instanceArrayId": "123",
"infrastructureId": "456",
"userIdAuthenticated": "789"
}
}
{
"id": "event-id-123",
"time": "2025-01-01T12:00:00.000Z",
"type": "instance.dns.deleted",
"source": "https://metalsoft.io/orchestrator-microservice",
"specversion": "1.0",
"datacontenttype": "application/json",
"data": {
"instanceId": "123",
"infrastructureId": "456",
"userIdAuthenticated": "789"
}
}