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,
});