DBIE Bot

Hyperforce Lifecycle Engineering

  • DBIE Bot / BaaS (Bot as a service/platform) is a common platform across the teams where it allows easy onboarding of teams for their slack commands and implementing their own functionality.
  •  It also provides feature and services that teams can leverage and extend upon. This allows teams to focus entirely on their core functionality.

 

What is it ?

Advantages

  • Eliminate FEDX onboarding, setting up monitoring dashboards, alert systems, and deployments.

  • Simplified Slack integration with pre-configured OAuth scopes.

  • Effortless user onboarding with a one-click Slack workflow.

How easy it is to build a command ?

class Ping(commands.Command):
    class Meta:
        name = ".ping"
        username = "Ping Greeter"
        icon_emoji = ":wave:"
        description = "A simple healthcheck command"
        show_typing = True

    def handle(self, message, options):
        message.reply(text="Hello 👋, the bot is up and running!")

ping.py

hce/dbiebot

pull request

Overview of key features

@command.rbac
class Ping(commands.Command):
    class Meta:
        name = ".ping"
        username = "Ping Greeter"
        icon_emoji = ":wave:"
        
        extra_options = {
            "auth": {
                "teams": [GUS_TEAM_IDS.HCE],
                "users": ["kmanchukonda@salesforce.com", "snerati@salesforce.com"],
                "message": "Not Authorized to execute this command."
            }
        }

    def handle(self, message, options):
        message.reply(text="Hello 👋, the bot is up and running!")

RBAC Guardrails

class Ping(commands.Command):
    class Meta:
        name = ".ping"
        
    def add_arguments(self, parser):
        parser.add_argument('--work_id', 'Provide a work item id like W-123456')

    def handle(self, message, options):
		gus = Connect(
			vault.get_team_secret("PMD", "GUS_SERVICE_ACCOUNT_ID"),
			vault.get_team_secret("PMD", "GUS_SERVICE_ACCOUNT_PASSWORD"),
		)
        message.reply(text = gus.work_item(work_id).text)

Bringing your own service account / certs

  • 🔒 secure multitenancy - path isolation
  • seamlessly own and modify your service account secrets yourself

Network Connectivity

aws-esvc1-useast2

Outbound Network Access

Site Bridge

Gus

Gus

Argus

QuantumK

LLM Gateway

Slack

Git soma

UIP

@scheduler.register(interval = 60 * 24) # once a day
def run():
  PIESupportMetricCollection().handle()

class PIESupportMetricCollection(commands.Command):
    class Meta:
        name = ".pie-metrics"

    def handle(self, message, options):
        # business logic for metric collection
        pass

Scheduling Jobs

Mature Slack SDK integration

message.reply(blocks=[
  kit.Actions(elements=[
    self.approve_button(),
    self.reject_button()
  ]),
  self.user_selection(
    message.get_user_id()),
    self.static_selection()])

Docs

Teams that have currently onboarded and are building their use cases

  • PIE APAC - A metric collector for support ticket resolution time on #pie-support.
  • PMD - An interface for using the Gus service account to perform operations on work items and change cases.
  • HGCO - Utilizing Git Soma APIs to execute pull requests through a Slack interface.
  • CCDE - An interface for accessing the CCRDB database in Commerce Cloud.
  • AMA - Communicate with the RAG model of db ops GPT and provide a conversational flow for multiple teams knowledge bases.

AMA (Ask me anything)

Leverage Generative AI for DBIE Knowledge bases

Interface

Vector Stores and Refresh

Current state

  • fixed knowledge base
  • manually generate embeddings
    on local machine
  • upload them to s3 on a
    regular basis

Expected state

  • no cap on number of
    knowledge bases
  • auto generate embeddings in
    a falcon environment
  • auto refresh maintaining compliance

LLM Agents

Thank you

Made with Slides.com