sdk

module
v1.0.0-rc3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 27, 2025 License: MIT

README

sdk

Reusable utilities written in Go for seamless integration with microservices built on the Flash Framework. Designed to accelerate development, promote consistency, and simplify communication between distributed services.

config

Create config
package main

import "github.com/flash-go/sdk/config"

func main() {
	// Create state service
	stateService := {...}

	// Set service name
	serviceName := "name"

	// Create config
	cfg := config.New(stateService, serviceName)
}
Get service name
package main

func main() {
	// Create config
	cfg := {...}

	// Get service name
	value := cfg.GetService()
}
Get string value by key
package main

func main() {
	// Create config
	cfg := {...}

	// Get string value by key
	value := cfg.Get("host")
}
Get int value by key
package main

func main() {
	// Create config
	cfg := {...}

	// Get int value by key
	value := cfg.GetInt("host")
}
Set value by key
package main

func main() {
	// Create config
	cfg := {...}

	// Set value by key
	err := cfg.Set("key", "value")
}
Set env map
package main

func main() {
	// Create config
	cfg := {...}

	var envMap = map[string]string{
		"ENV_KEY": "CONSUL_KV_KEY",
	}

	// Set env map
	err := cfg.SetEnvMap(envMap)
}

errors

Types
Type Message
ErrBadRequest bad_request
ErrUnauthorized unauthorized
ErrForbidden forbidden
ErrServiceUnavailable service_unavailable
Create error
package main

import "github.com/flash-go/sdk/errors"

func main() {
	// Create error
	err := errors.New(errors.ErrUnauthorized, "invalid_credentials")
}

infra

Get Postgres KV keys
package main

import "github.com/flash-go/sdk/infra"

func main() {
	infra.PostgresHostOptKey
	infra.PostgresPortOptKey
	infra.PostgresUserOptKey
	infra.PostgresPasswordOptKey
	infra.PostgresDbOptKey
}
Create Postgres client
package main

import "github.com/flash-go/sdk/infra"

func main() {
	// Create config
	cfg := {...}

	// Create postgres client
	postgresClient := infra.NewPostgresClient(
		&infra.PostgresClientConfig{
			Cfg:        cfg,
			Telemetry:  nil,
			Migrations: nil,
		},
	)
}
Get Redis KV keys
package main

import "github.com/flash-go/sdk/infra"

func main() {
	infra.RedisHostOptKey
	infra.RedisPortOptKey
	infra.RedisPasswordOptKey
	infra.RedisDbOptKey
}
Create Redis client
package main

import "github.com/flash-go/sdk/infra"

func main() {
	// Create config
	cfg := {...}

	// Create redis client
	redisClient := infra.NewRedisClient(
		&infra.RedisClientConfig{
			Cfg:       cfg,
			Telemetry: nil,
		},
	)
}

logger

Create console logger
package main

import "github.com/flash-go/sdk/logger"

func main() {
	// Create logger service
	loggerService := logger.NewConsole()
}

state

Create state service
package main

import "github.com/flash-go/sdk/state"

func main() {
	// Set service name
	serviceName := "name"

	// Create state service
	stateService := state.New(serviceName)
}

telemetry

Get telemetry KV keys
package main

import "github.com/flash-go/sdk/telemetry"

func main() {
	telemetry.OtelCollectorGrpcOptKey
}
Create gRPC telemetry service
package main

import "github.com/flash-go/sdk/telemetry"

func main() {
	// Create config
	cfg := {...}

	// Create telemetry service
	telemetryService := telemetry.NewGrpc(cfg)
}

services

users
Create JWT key
package main

import "github.com/flash-go/sdk/services/users"

func main() {
	// Key size
	size := 64

	// Create key
	key := users.NewJwtKey(size)
}
Use users middleware
package main

import "github.com/flash-go/sdk/services/users"

func main() {
	// Create http client
	httpClient := {...}

	// Create http server
	httpServer := {...}

	// Set user service
	userService := "users"

	// Create users middleware
	usersMiddleware := users.NewMiddleware(
		&users.MiddlewareConfig{
			UsersService: "users",
			HttpClient:  httpClient,
		},
	)

	// Set roles
	roles := []string{"admin"}

	// Use auth middleware
	httpServer.AddRoute(
		http.MethodGet,
		"/",
		func(ctx server.ReqCtx) {
			ctx.WriteString("Hello")
		},
		usersMiddleware.Auth(true, roles),
	)
}

Directories

Path Synopsis
services

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL