# How to enable/disable custom plugin for particular user/spaces?

**URL:** <https://discuss.elastic.co/t/how-to-enable-disable-custom-plugin-for-particular-user-spaces/263546>\
**Category:** Kibana\
**Tags:** kibana-plugin-development\
**Created:** [February 8, 2021, 6:18am UTC](https://discuss.elastic.co/t/how-to-enable-disable-custom-plugin-for-particular-user-spaces/263546 "2021-02-08T06:18:18Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Akhil\_Kaithoju](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/akhil_kaithoju/32/46709_2.png) [@Akhil\_Kaithoju](https://discuss.elastic.co/u/Akhil_Kaithoju)\
**Post date:** [February 8, 2021, 6:18am UTC](https://discuss.elastic.co/t/how-to-enable-disable-custom-plugin-for-particular-user-spaces/263546/1 "2021-02-08T06:18:18Z")

</div>

Hi, I'm currently using Kibana 7.10, where I created a custom plugin that reflects the side navigation bar. Now I want to allow access for a specific user or space. Previously it was available for Kibana 7.6, now it has been deprecated.

Can some one help me out ?

Thanks in advance

---

<div class="post-metadata">

**Author:** ![flash1293](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/flash1293/32/41227_2.png) [@flash1293](https://discuss.elastic.co/u/flash1293)\
**Post date:** [February 9, 2021, 9:09am UTC](https://discuss.elastic.co/t/how-to-enable-disable-custom-plugin-for-particular-user-spaces/263546/2 "2021-02-09T09:09:58Z")

</div>

> Previously it was available for Kibana 7.6, now it has been deprecated.

Could you point me to the API which was deprecated here? It should still be possible to do this.

---

<div class="post-metadata">

**Author:** ![Akhil\_Kaithoju](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/akhil_kaithoju/32/46709_2.png) [@Akhil\_Kaithoju](https://discuss.elastic.co/u/Akhil_Kaithoju)\
**Post date:** [February 9, 2021, 9:44am UTC](https://discuss.elastic.co/t/how-to-enable-disable-custom-plugin-for-particular-user-spaces/263546/3 "2021-02-09T09:44:10Z")

</div>

index.js file no more available while generating the custom plugin for kibana7.10.1.  
The file contains register features following below:

```
import { resolve } from 'path';
import { existsSync } from 'fs';

import { i18n } from '@kbn/i18n';

import exampleRoute from './server/routes/example';

export default function (kibana) {
  return new kibana.Plugin({
    require: ['elasticsearch'],
    name: 'scheduler',
    uiExports: {
      app: {
        title: 'Scheduler',
        description: 'dags',
        main: 'plugins/scheduler/app',
        euiIconType:'timelionApp',
      },
      hacks: [
        'plugins/scheduler/hack'
      ],
      styleSheetPaths: [resolve(__dirname, 'public/app.scss'), resolve(__dirname, 'public/app.css')].find(p => existsSync(p)),
    },

    config(Joi) {
      return Joi.object({
        enabled: Joi.boolean().default(true),
      }).default();
    },

    // eslint-disable-next-line no-unused-vars
    init(server, options) {
      const xpackMainPlugin = server.plugins.xpack_main;
      if (xpackMainPlugin) {
        const featureId = 'scheduler';

        xpackMainPlugin.registerFeature({
          id: featureId,
          name: i18n.translate('scheduler.featureRegistry.featureName', {
            defaultMessage: 'scheduler',
          }),
          navLinkId: featureId,
          icon: 'questionInCircle',
          app: [featureId, 'kibana'],
          catalogue: [],
          privileges: {
            all: {
              api: [],
              savedObject: {
                all: [],
                read: [],
              },
              ui: ['show'],
            },
            read: {
              api: [],
              savedObject: {
                all: [],
                read: [],
              },
              ui: ['show'],
            },
          },
        });
      }

      // Add server routes and initialize the plugin here
      exampleRoute(server);
    }
  });
}
```

---

<div class="post-metadata">

**Author:** ![flash1293](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/flash1293/32/41227_2.png) [@flash1293](https://discuss.elastic.co/u/flash1293)\
**Post date:** [February 9, 2021, 9:51am UTC](https://discuss.elastic.co/t/how-to-enable-disable-custom-plugin-for-particular-user-spaces/263546/4 "2021-02-09T09:51:45Z")

</div>

The API just moved - now you have to do this in the plugin class on the server side. Check out how the canvas plugin does it: [kibana/plugin.ts at master · elastic/kibana · GitHub](https://github.com/elastic/kibana/blob/master/x-pack/plugins/canvas/server/plugin.ts#L41)

---

<div class="post-metadata">

**Author:** ![Akhil\_Kaithoju](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/akhil_kaithoju/32/46709_2.png) [@Akhil\_Kaithoju](https://discuss.elastic.co/u/Akhil_Kaithoju)\
**Post date:** [February 9, 2021, 10:09am UTC](https://discuss.elastic.co/t/how-to-enable-disable-custom-plugin-for-particular-user-spaces/263546/5 "2021-02-09T10:09:53Z")

</div>

Yes, I did the same, but got an issue on that. So i was registered the custom plugin into following path:  
**x-pack/plugins/features/server/oss\_features.ts**  
Now it is working fine.

Thanks

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [March 9, 2021, 10:09am UTC](https://discuss.elastic.co/t/how-to-enable-disable-custom-plugin-for-particular-user-spaces/263546/6 "2021-03-09T10:09:59Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
