
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
@signallabs/admin
Advanced tools
A KeystoneJS app which provides an Admin UI for content management.
const { Keystone } = require('@keystonejs/keystone');
const { GraphQLApp } = require('@keystonejs/app-graphql');
const { AdminUIApp } = require('@keystonejs/app-admin-ui');
const authStrategy = keystone.createAuthStrategy({...});
module.exports = {
keystone: new Keystone(),
apps: [
new GraphQLApp(),
new AdminUIApp({
adminPath: '/admin',
authStrategy,
}),
],
};
| Option | Type | Default | Required | Description |
|---|---|---|---|---|
adminPath | String | /admin | false | The path of the Admin UI. |
apiPath | String | /admin/api | false | The path of the API provided to the Admin UI. |
graphiqlPath | String | /admin/api | false | The path of the graphiql app, an in-browser IDE for exploring GraphQL. |
authStrategy | Object | null | false | See Authentication Guides |
hooks | String | ./admin-ui/ | false | Path to customization hooks. See below for more information. |
enableDefaultRoute | Bool | false | false | If enabled, the path of the Admin UI app will be set to /. |
schemaName | String | public | false | |
isAccessAllowed | Function | true | false | Controls which users have access to the Admin UI. |
adminMeta | Object | {} | false | Provides additional adminMeta. Useful for Hooks and other customizations |
hooksCustomization hooks allow you to modify various areas of the Admin UI to better suit your development needs. The index.js file at the given path should export a single config object containing your chosen hooks. All are optional.
If omitted, Keystone will look under ./admin-ui/ for a hooks config export.
new AdminUIApp({ hooks: require.resolve('./custom-hooks-path') });
The following hooks are available. Each is a function that takes no arguments.
export default {
logo,
pages,
};
logoThe logo to display on the signin screen.
Should return a React component.
export default {
logo: () => <MyAwesomeLogo />,
};
pagesAllows grouping list pages in the sidebar or defining completely new pages.
Should return an array of objects, which may contain the following properties:
| Name | Type | Description |
|---|---|---|
label | String | The page name to display in the sidebar. |
path | String | The page path. |
component | `Function | Class` |
children | Array | An array of either Keystone list keys or objects with listKey and label properties. |
export default {
pages: () => [
// Custom pages
{
label: 'A new dashboard',
path: '',
component: Dashboard,
},
{
label: 'About this project',
path: 'about',
component: About,
},
// Ordering existing list pages
{
label: 'Blog',
children: [
{ listKey: 'Post' },
{ listKey: 'PostCategory', label: 'Categories' },
{ listKey: 'Comment' },
],
},
{
label: 'People',
children: ['User'],
},
],
};
isAccessAllowedThis function takes the same arguments as a shorthand imperative boolean access control. It must return either true or false.
Important: If omitted, all users with accounts will be able to access the Admin UI. The example below would restrict access to users with the
isAdminpermission.
new AdminUIApp({
/*...config */
isAccessAllowed: ({ authentication: { item: user, listKey: list } }) => !!user && !!user.isAdmin,
}),
FAQs
Admin UI App.
We found that @signallabs/admin demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.