Feature Server API
Similar to Feature Browser API, the backend Feature API support all that need to run the backend application.
It is opiniated and it supports
- graphql-server such as resolvers, schema, directives, datasource
- express middleware
- preferences configuration
- permissions configuration
- policy configuration
- roles configuraton
- Graphql Rules
- Moleculer broker services
Each of these packaged module is used in the backend-server like below
import CounterModule from '@sample-stack/counter-module-server';
import AccountModule from '@sample-stack/account-module-server';
import PaymentModule from '@sample-stack/payment-module-server';
const feature = new Feature(DefaultFeature, CounterModule, AccountModule, PaymentModule);
For example provide all the required configuration to the Feature like below. 
const module = new Feature({
    schema,
    createDirectivesFUnc: paymentContextDirectives,
    createDataSourceFunc: () => ({
        stripeManager: new StripeDataSourceService(),
    }),
    createResolversFunc: resolver,
    createServcieFunc: billingSErviceFunc,
    middleware: stripeWebhookMiddleware,
    createContainerFunc: [billingPorxyModule],
    createHemeraContainerFunc: [billingModule],
    postStartFunc: [(container, ctx) => initStripe(container, ctx)],
    addBrokerClientServiceClass: [
        BillingMoleculerService,
    ],
    createPreference: settings,
    rolesUpdate: {
        overwriteRolesPermissions: rolePermissionOverwrite,
    },
    addPermissions: {
        createPermissions: billingRoleContribution,
    },
    addPolicies: {
        createPolicies: BillingPolicyContribution,
    },
    rules,
});