Skip to content

Packages

aha-go is organized into focused packages for specific functionality.

Package Overview

Package Import Description
aha github.com/grokify/aha-go Core client and entity types
graphql github.com/grokify/aha-go/graphql GraphQL API client
canvas github.com/grokify/aha-go/canvas Strategic canvas operations
browser github.com/grokify/aha-go/browser HTML entity browser
render github.com/grokify/aha-go/render Diagram generation
omniroadmap github.com/grokify/aha-go/omniroadmap omniroadmap-core provider adapter

Core Package

The root package provides the main client and all entity types.

import aha "github.com/grokify/aha-go"

client, err := aha.NewClient()

// Entity operations
features, _ := client.ListFeatures(ctx, "PRODUCT")
ideas, _ := client.ListIdeas(ctx, "PRODUCT")
releases, _ := client.ListReleases(ctx, "PRODUCT")

Sub-packages

graphql

Execute GraphQL queries against Aha.io's GraphQL API.

import "github.com/grokify/aha-go/graphql"

client := graphql.NewClient("mycompany", "api-key")

var result graphql.SearchDocumentsResponse
err := client.Query(ctx, graphql.SearchDocumentsQuery, map[string]any{
    "query":          "onboarding",
    "searchableType": []string{"Page"},
}, &result)

Full graphql documentation

canvas

Create and export strategic canvases.

import "github.com/grokify/aha-go/canvas"

// Create Business Model Canvas
bmc := canvas.BusinessModelCanvas{
    Name: "Product BMC",
    // ...
}

Full canvas documentation

browser

Serve Aha data as a browsable HTML interface.

import "github.com/grokify/aha-go/browser"

server := browser.New(client, browser.Options{
    Port: 8080,
})
server.Start()

Full browser documentation

render

Generate diagrams from Aha data.

import "github.com/grokify/aha-go/render"

mermaid := render.ReleasesToMermaid(releases, render.MermaidOptions{})

Full render documentation

omniroadmap

Adapts *aha.Client to omniroadmap-core's provider.Provider interface, for use by roadmap-aggregation tools (e.g. plexusone/dashforge) that consume multiple product-management providers through one contract.

import (
    aha "github.com/grokify/aha-go"
    "github.com/grokify/aha-go/omniroadmap"
    "github.com/grokify/omniroadmap-core/provider"
)

client, err := aha.NewClient()
p := omniroadmap.NewProvider(client, omniroadmap.WithProductID("PROD"))

items, err := p.ListItems(ctx, &provider.ListItemsRequest{})

Full omniroadmap documentation

API Reference

For complete API documentation, see pkg.go.dev.