Skip to content

Service Visibility

What is Service Visibility

Service visibility in Omnistrate allows you to control which services are internal and which are customer-facing. This configuration is essential when building multi-service applications.

Service Visibility Configuration

When defining multiple services in your compose file, you need to explicitly specify which services are internal using the x-omnistrate-mode-internal flag. This flag helps in managing service visibility and accessibility.

Service Visibility Usage

You can define service visibility in your compose file by adding the x-omnistrate-mode-internal flag to your service definition:

services:
  backend-service:
    x-omnistrate-mode-internal: true  # This service will be internal
    # ...other service configuration

  public-api:
    x-omnistrate-mode-internal: false  # This service will be customer-facing
    # ...other service configuration

Note

When you have multiple services in your compose file, you must define the x-omnistrate-mode-internal flag for at least one service to explicitly specify its visibility.

Configuration Rules

  • The flag accepts boolean values (true/false)
  • Required when defining multiple services in the compose file
  • At least one service must have this flag defined when multiple services are present
  • Helps in distinguishing between internal and customer-facing services

Service Visibility Example

Here's a complete example showing how to configure service visibility in a multi-service setup:

services:
  internal-backend:
    image: backend:latest
    x-omnistrate-mode-internal: true
    ports:
      - "8080"
    volumes:
      - internal-data:/data
    environment:
      - DB_CONNECTION=internal

  public-api-gateway:
    image: api-gateway:latest
    x-omnistrate-mode-internal: false
    ports:
      - "80:80"
    depends_on:
      - internal-backend

Service Visibility Best Practices

  • Explicit Configuration: Always explicitly define the visibility of your services to maintain clarity.
  • Security Considerations:
  • Mark internal services that handle sensitive operations as x-omnistrate-mode-internal: true
  • Only expose necessary services as customer-facing (x-omnistrate-mode-internal: false)
  • Documentation: Document the purpose and visibility of each service in your architecture

Service Visibility Common Use Cases

Internal Services

Typically marked as x-omnistrate-mode-internal: true:

  • Database services
  • Cache services
  • Background workers
  • Internal APIs
  • Service meshes

Customer-Facing Services

Typically marked as x-omnistrate-mode-internal: false:

  • Public API endpoints
  • Customer-facing web applications
  • Load balancers
  • Gateway services