@bella-baxter/adonis
v0.1.1-preview.133
Published
Bella Baxter AdonisJS v6 service provider — registers BellaService in the IoC container
Maintainers
Readme
@bella-baxter/adonis
Bella Baxter service provider for AdonisJS v6/v7 — registers BellaService in the IoC container for live-reloading secrets.
Installation
npm install @bella-baxter/adonis
# or
pnpm add @bella-baxter/adonisSetup
1. Register the provider
// adonisrc.ts
import { defineConfig } from '@adonisjs/core/build/config.js';
export default defineConfig({
providers: [
() => import('@bella-baxter/adonis'),
],
});2. Create the config file
// config/bella.ts
import env from '#start/env'
import type { BellaConfigOptions } from '@bella-baxter/adonis';
const bellaConfig: BellaConfigOptions = {
baxterUrl: env.get('BELLA_BAXTER_URL'),
apiKey: env.get('BELLA_BAXTER_API_KEY'),
projectSlug: env.get('BELLA_BAXTER_PROJECT', 'my-app'),
environmentSlug: env.get('BELLA_BAXTER_ENV', 'production'),
};
export default bellaConfig;3. Inject in controllers / services
import { inject } from '@adonisjs/core';
import { BellaService } from '@bella-baxter/adonis';
@inject()
export default class SecretsController {
constructor(protected bella: BellaService) {}
async show() {
return { dbUrl: this.bella.getOrThrow('DATABASE_URL') }
}
}Typed secrets
Run bella secrets generate typescript --declaration to generate bella-secrets.d.ts. The BellaService proxy picks up the augmented BellaSecrets interface:
this.bella.DATABASE_URL // string — typed!Environment variables
| Variable | Description |
|----------|-------------|
| BELLA_BAXTER_URL | Base URL of the Bella Baxter API |
| BELLA_BAXTER_API_KEY | API key (bax-...) |
| BELLA_BAXTER_PROJECT | Project slug |
| BELLA_BAXTER_ENV | Environment slug |
| BELLA_BAXTER_PRIVATE_KEY | Private key for ZKE (optional) |
