Jae Wilson @DataCrew
Domo

My first Domo CodeEngine function -- handling API authentication with Accounts (Part 1)

April 25, 2024

Hook

Getting Domo CodeEngine to do something as basic as print a URL shouldn't require reverse-engineering the runtime — but it does, and the documentation won't save you.

Why It Matters

CodeEngine is Domo's serverless function layer, and it's the bridge between your backend logic and custom Domo apps. Without understanding how the runtime actually behaves — how output works, which function signatures are valid, how authentication flows through Accounts — you'll waste hours writing functions that silently do nothing. Getting this foundation right unlocks the ability to make authenticated API calls from inside Domo without exposing credentials in app code.

What You'll Learn

  • Understand why Python functions in CodeEngine must be synchronous — and why async silently fails
  • Debug the stdout/print confusion that swallows all your output
  • Properly define function inputs, outputs, and types in the CodeEngine UI
  • Structure a minimal working function before layering in complexity
  • Set up Domo Account-based authentication to avoid hardcoding credentials