@zakodium/adonis-mongodb

MongoDB provider for AdonisJs

Usage no npm install needed!

<script type="module">
  import zakodiumAdonisMongodb from 'https://cdn.skypack.dev/@zakodium/adonis-mongodb';
</script>

README

Adonis MongoDB

MongoDB provider for AdonisJS 5.

Zakodium logo

Maintained by Zakodium

NPM version build status Test coverage npm download

:warning: This module is unstable and in active development. Use at your own risk.

Prerequisites

This provider requires AdonisJS v5 and won't work with AdonisJS v4.

We recommend using MongoDB >=4.4, because creation of collections and indexes in migrations will be transactional and will be properly rolled back in case of error.

If you use a version < 4.4, you might run into issues with partially applied migrations.

Installation

npm i @zakodium/adonis-mongodb
node ace configure @zakodium/adonis-mongodb

Documentation

Using with the authentication provider

Adonis MongoDB can be used to authenticate users with the @adonisjs/auth addon. To enable it, edit the following files:

contracts/auth.ts

Example of a configuration with the session guard:

import {
  MongodbModelAuthProviderContract,
  MongodbModelAuthProviderConfig,
} from '@ioc:Zakodium/Mongodb/Odm';

import User from 'App/Models/User';

declare module '@ioc:Adonis/Addons/Auth' {
  interface ProvidersList {
    user: {
      implementation: MongodbModelAuthProviderContract<typeof User>;
      config: MongodbModelAuthProviderConfig<typeof User>;
    };
  }

  interface GuardsList {
    web: {
      implementation: SessionGuardContract<'user', 'web'>;
      config: SessionGuardConfig<'user'>;
    };
  }
}

config/auth.ts

import { AuthConfig } from '@ioc:Adonis/Addons/Auth';

const authConfig: AuthConfig = {
  guard: 'web',
  guards: {
    web: {
      driver: 'session',
      provider: {
        driver: 'mongodb-model',
      },
    },
  },
};

export default authConfig;

Development

To run tests locally:

docker-compose up -d
node reset-dev.mjs
npm test
docker-compose down

License

MIT