management/index.js

  1. /** @module management */
  2. var util = require('util');
  3. var pkg = require('../../package.json');
  4. var utils = require('../utils');
  5. var jsonToBase64 = utils.jsonToBase64;
  6. var ArgumentError = require('../exceptions').ArgumentError;
  7. // Managers.
  8. var ClientsManager = require('./ClientsManager');
  9. var UsersManager = require('./UsersManager');
  10. var ConnectionsManager = require('./ConnectionsManager');
  11. var BlacklistedTokensManager = require('./BlacklistedTokensManager');
  12. var RulesManager = require('./RulesManager');
  13. var DeviceCredentialsManager = require('./DeviceCredentialsManager');
  14. var EmailProviderManager = require('./EmailProviderManager');
  15. var StatsManager = require('./StatsManager');
  16. var TenantManager = require('./TenantManager');
  17. var JobsManager = require('./JobsManager');
  18. var TicketsManager = require('./TicketsManager');
  19. var LogsManager = require('./LogsManager');
  20. var BASE_URL_FORMAT = 'https://%s/api/v2';
  21. /**
  22. * @class ManagementClient
  23. * Management API SDK.
  24. *
  25. * The Auth0 Management API is meant to be used by back-end servers or trusted
  26. * parties performing administrative tasks. Generally speaking, anything that
  27. * can be done through the Auth0 dashboard (and more) can also be done through
  28. * this API.
  29. * @constructor
  30. * @memberOf module:management
  31. *
  32. * @example <caption>
  33. * Initialize your client class with an API v2 token (you can generate one
  34. * <a href="https://auth0.com/docs/apiv2">here</a>) and a domain.
  35. * </caption>
  36. *
  37. * var ManagementClient = require('auth0').ManagementClient;
  38. * var auth0 = new ManagementClient({
  39. * token: '{YOUR_API_V2_TOKEN}',
  40. * domain: '{YOUR_ACCOUNT}.auth0.com'
  41. * });
  42. *
  43. * @param {Object} options Options for the ManagementClient SDK.
  44. * @param {String} options.token API access token.
  45. * @param {String} [options.domain] ManagementClient server domain.
  46. */
  47. var ManagementClient = function (options) {
  48. if (!options || typeof options !== 'object') {
  49. throw new ArgumentError('Management API SDK options must be an object');
  50. }
  51. if (!options.token || options.token.length === 0) {
  52. throw new ArgumentError('An access token must be provided');
  53. }
  54. if (!options.domain || options.domain.length === 0) {
  55. throw new ArgumentError('Must provide a domain');
  56. }
  57. var managerOptions = {
  58. headers: {
  59. 'Authorization': 'Bearer ' + options.token,
  60. 'User-agent': 'node.js/' + process.version.replace('v', ''),
  61. 'Content-Type': 'application/json'
  62. },
  63. baseUrl: util.format(BASE_URL_FORMAT, options.domain)
  64. };
  65. if (options.telemetry !== false) {
  66. var telemetry = jsonToBase64(options.clientInfo || this.getClientInfo());
  67. managerOptions.headers['Auth0-Client'] = telemetry;
  68. }
  69. /**
  70. * Simple abstraction for performing CRUD operations on the
  71. * clients endpoint.
  72. *
  73. * @type {ClientsManager}
  74. */
  75. this.clients = new ClientsManager(managerOptions);
  76. /**
  77. * Simple abstraction for performing CRUD operations on the
  78. * users endpoint.
  79. *
  80. * @type {UsersManager}
  81. */
  82. this.users = new UsersManager(managerOptions);
  83. /**
  84. * Simple abstraction for performing CRUD operations on the
  85. * connections endpoint.
  86. *
  87. * @type {ConnectionsManager}
  88. */
  89. this.connections = new ConnectionsManager(managerOptions);
  90. /**
  91. * Simple abstraction for performing CRUD operations on the
  92. * device credentials endpoint.
  93. *
  94. * @type {DeviceCredentialsManager}
  95. */
  96. this.deviceCredentials = new DeviceCredentialsManager(managerOptions);
  97. /**
  98. * Simple abstraction for performing CRUD operations on the
  99. * rules endpoint.
  100. *
  101. * @type {RulesManager}
  102. */
  103. this.rules = new RulesManager(managerOptions);
  104. /**
  105. * Simple abstraction for performing CRUD operations on the
  106. * blacklisted tokens endpoint.
  107. *
  108. * @type {BlacklistedtokensManager}
  109. */
  110. this.blacklistedTokens = new BlacklistedTokensManager(managerOptions);
  111. /**
  112. * Simple abstraction for performing CRUD operations on the
  113. * email provider endpoint.
  114. *
  115. * @type {EmailProviderManager}
  116. */
  117. this.emailProvider = new EmailProviderManager(managerOptions);
  118. /**
  119. * ManagementClient account statistics manager.
  120. *
  121. * @type {StatsManager}
  122. */
  123. this.stats = new StatsManager(managerOptions);
  124. /**
  125. * ManagementClient tenant settings manager.
  126. *
  127. * @type {TenantManager}
  128. */
  129. this.tenant = new TenantManager(managerOptions);
  130. /**
  131. * Jobs manager.
  132. *
  133. * @type {JobsManager}
  134. */
  135. this.jobs = new JobsManager(managerOptions);
  136. /**
  137. * Tickets manager.
  138. *
  139. * @type {TicketsManager}
  140. */
  141. this.tickets = new TicketsManager(managerOptions);
  142. /**
  143. * Logs manager.
  144. *
  145. * @type {LogsManager}
  146. */
  147. this.logs = new LogsManager(managerOptions);
  148. };
  149. /**
  150. * Return an object with information about the current client,
  151. *
  152. * @method getClientInfo
  153. * @memberOf module:management.ManagementClient.prototype
  154. *
  155. * @return {Object} Object containing client information.
  156. */
  157. ManagementClient.prototype.getClientInfo = function () {
  158. var clientInfo = {
  159. name: 'node-auth0',
  160. version: pkg.version,
  161. dependencies: [],
  162. environment: [{
  163. name: 'node.js',
  164. version: process.version.replace('v', '')
  165. }]
  166. };
  167. // Add the dependencies to the client info object.
  168. Object
  169. .keys(pkg.dependencies)
  170. .forEach(function (name) {
  171. clientInfo.dependencies.push({
  172. name: name,
  173. version: pkg.dependencies[name]
  174. });
  175. });
  176. return clientInfo;
  177. };
  178. /**
  179. * Get all connections.
  180. *
  181. * @method getConnections
  182. * @memberOf module:management.ManagementClient.prototype
  183. *
  184. * @example
  185. * management.getConnections(function (err, connections) {
  186. * console.log(connections.length);
  187. * });
  188. *
  189. * @param {Object} data Connection data object.
  190. * @param {Function} [cb] Callback function.
  191. *
  192. * @return {Promise|undefined}
  193. */
  194. utils.wrapPropertyMethod(ManagementClient, 'getConnections', 'connections.getAll');
  195. /**
  196. * Create a new connection.
  197. *
  198. * @method createConnection
  199. * @memberOf module:management.ManagementClient.prototype
  200. *
  201. * @example
  202. * management.createConnection(data, function (err) {
  203. * if (err) {
  204. * // Handle error.
  205. * }
  206. *
  207. * // Conection created.
  208. * });
  209. *
  210. * @param {Object} data Connection data object.
  211. * @param {Function} [cb] Callback function.
  212. *
  213. * @return {Promise|undefined}
  214. */
  215. utils.wrapPropertyMethod(ManagementClient, 'createConnection', 'connections.create');
  216. /**
  217. * Get an Auth0 connection.
  218. *
  219. * @method getConnection
  220. * @memberOf module:management.ManagementClient.prototype
  221. *
  222. * @example
  223. * management.getConnection({ id: CONNECTION_ID }, function (err, connection) {
  224. * if (err) {
  225. * // Handle error.
  226. * }
  227. *
  228. * console.log(connection);
  229. * });
  230. *
  231. * @param {Object} params Connection parameters.
  232. * @param {String} params.id Connection ID.
  233. * @param {Function} [cb] Callback function.
  234. *
  235. * @return {Promise|undefined}
  236. */
  237. utils.wrapPropertyMethod(ManagementClient, 'getConnection', 'connections.get');
  238. /**
  239. * Delete an existing connection.
  240. *
  241. * @method deleteConnection
  242. * @memberOf module:management.ManagementClient.prototype
  243. *
  244. * @example
  245. * management.deleteConnection({ id: CONNECTION_ID }, function (err) {
  246. * if (err) {
  247. * // Handle error.
  248. * }
  249. *
  250. * // Conection deleted.
  251. * });
  252. *
  253. * @param {Object} params Connection parameters.
  254. * @param {String} params.id Connection ID.
  255. * @param {Function} [cb] Callback function.
  256. *
  257. * @return {Promise|undefined}
  258. */
  259. utils.wrapPropertyMethod(ManagementClient, 'deleteConnection', 'connections.delete');
  260. /**
  261. * Update an existing connection.
  262. *
  263. * @method updateConnection
  264. * @memberOf module:management.ManagementClient.prototype
  265. *
  266. * @example
  267. * var data = { name: 'newConnectionName' };
  268. * var params = { id: CONNECTION_ID };
  269. *
  270. * management.updateConnection(params, data, function (err, connection) {
  271. * if (err) {
  272. * // Handle error.
  273. * }
  274. *
  275. * console.log(connection.name); // 'newConnectionName'
  276. * });
  277. *
  278. * @param {Object} params Conneciton parameters.
  279. * @param {String} params.id Connection ID.
  280. * @param {Object} data Updated connection data.
  281. * @param {Function} [cb] Callback function.
  282. *
  283. * @return {Promise|undefined}
  284. */
  285. utils.wrapPropertyMethod(ManagementClient, 'updateConnection', 'connections.update');
  286. /**
  287. * Get all Auth0 clients.
  288. *
  289. * @method getClients
  290. * @memberOf module:management.ManagementClient.prototype
  291. *
  292. * @example
  293. * management.getClients(function (err, clients) {
  294. * console.log(clients.length);
  295. * });
  296. *
  297. * @param {Function} [cb] Callback function.
  298. *
  299. * @return {Promise|undefined}
  300. */
  301. utils.wrapPropertyMethod(ManagementClient, 'getClients', 'clients.getAll');
  302. /**
  303. * Get an Auth0 client.
  304. *
  305. * @method getClient
  306. * @memberOf module:management.ManagementClient.prototype
  307. *
  308. * @example
  309. * management.getClient({ client_id: CLIENT_ID }, function (err, client) {
  310. * if (err) {
  311. * // Handle error.
  312. * }
  313. *
  314. * console.log(client);
  315. * });
  316. *
  317. * @param {Object} params Client parameters.
  318. * @param {String} params.client_id Application client ID.
  319. * @param {Function} [cb] Callback function.
  320. *
  321. * @return {Promise|undefined}
  322. */
  323. utils.wrapPropertyMethod(ManagementClient, 'getClient', 'clients.get');
  324. /**
  325. * Create an Auth0 client.
  326. *
  327. * @method createClient
  328. * @memberOf module:management.ManagementClient.prototype
  329. *
  330. * @example
  331. * management.createClient(data, function (err) {
  332. * if (err) {
  333. * // Handle error.
  334. * }
  335. *
  336. * // Client created.
  337. * });
  338. *
  339. * @param {Object} data The client data object.
  340. * @param {Function} [cb] Callback function.
  341. *
  342. * @return {Promise|undefined}
  343. */
  344. utils.wrapPropertyMethod(ManagementClient, 'createClient', 'clients.create');
  345. /**
  346. * Update an Auth0 client.
  347. *
  348. * @method updateClient
  349. * @memberOf module:management.ManagementClient.prototype
  350. *
  351. * @example
  352. * var data = { name: 'newClientName' };
  353. * var params = { client_id: CLIENT_ID };
  354. *
  355. * management.updateClient(params, data, function (err, client) {
  356. * if (err) {
  357. * // Handle error.
  358. * }
  359. *
  360. * console.log(client.name); // 'newClientName'
  361. * });
  362. *
  363. * @param {Object} params Client parameters.
  364. * @param {String} params.client_id Application client ID.
  365. * @param {Object} data Updated client data.
  366. * @param {Function} [cb] Callback function.
  367. *
  368. * @return {Promise|undefined}
  369. */
  370. utils.wrapPropertyMethod(ManagementClient, 'updateClient', 'clients.update');
  371. /**
  372. * Delete an Auth0 client.
  373. *
  374. * @method deleteClient
  375. * @memberOf module:management.ManagementClient.prototype
  376. *
  377. * @example
  378. * management.deleteClient({ client_id: CLIENT_ID }, function (err) {
  379. * if (err) {
  380. * // Handle error.
  381. * }
  382. *
  383. * // Client deleted.
  384. * });
  385. *
  386. * @param {Object} params Client parameters.
  387. * @param {String} params.client_id Application client ID.
  388. * @param {Function} [cb] Callback function.
  389. *
  390. * @return {Promise|undefined}
  391. */
  392. utils.wrapPropertyMethod(ManagementClient, 'deleteClient', 'clients.delete');
  393. /**
  394. * Create an Auth0 credential.
  395. *
  396. * @method createDevicePublicKey
  397. * @memberOf module:management.ManagementClient.prototype
  398. *
  399. * @example
  400. * management.createConnection(data, function (err) {
  401. * if (err) {
  402. * // Handle error.
  403. * }
  404. *
  405. * // Credential created.
  406. * });
  407. *
  408. * @param {Object} data The device credential data object.
  409. * @param {Function} [cb] Callback function.
  410. *
  411. * @return {Promise|undefined}
  412. */
  413. utils.wrapPropertyMethod(ManagementClient, 'createDevicePublicKey', 'deviceCredentials.createPublicKey');
  414. /**
  415. * Get all Auth0 credentials.
  416. *
  417. * @method getDeviceCredentials
  418. * @memberOf module:management.ManagementClient.prototype
  419. *
  420. * @example
  421. * management.getDeviceCredentials(function (err, credentials) {
  422. * console.log(credentials.length);
  423. * });
  424. *
  425. * @param {Function} [cb] Callback function.
  426. *
  427. * @return {Promise|undefined}
  428. */
  429. utils.wrapPropertyMethod(ManagementClient, 'getDeviceCredentials', 'deviceCredentials.getAll');
  430. /**
  431. * Delete an Auth0 device credential.
  432. *
  433. * @method deleteDeviceCredential
  434. * @memberOf module:management.ManagementClient.prototype
  435. *
  436. * @example
  437. * var params = { id: CREDENTIAL_ID };
  438. *
  439. * management.deleteDeviceCredential(params, function (err) {
  440. * if (err) {
  441. * // Handle error.
  442. * }
  443. *
  444. * // Credential deleted.
  445. * });
  446. *
  447. * @param {Object} params Credential parameters.
  448. * @param {String} params.id Device credential ID.
  449. * @param {Function} [cb] Callback function.
  450. *
  451. * @return {Promise|undefined}
  452. */
  453. utils.wrapPropertyMethod(ManagementClient, 'deleteDeviceCredential', 'deviceCredentials.delete');
  454. /**
  455. * Get all rules.
  456. *
  457. * @method getRules
  458. * @memberOf module:management.ManagementClient.prototype
  459. *
  460. * @example
  461. * management.getRules(function (err, rules) {
  462. * console.log(rules.length);
  463. * });
  464. *
  465. * @param {Function} [cb] Callback function.
  466. *
  467. * @return {Promise|undefined}
  468. */
  469. utils.wrapPropertyMethod(ManagementClient, 'getRules', 'rules.getAll');
  470. /**
  471. * Create a new rule.
  472. *
  473. * @method createRules
  474. * @memberOf module:management.ManagementClient.prototype
  475. *
  476. * @example
  477. * management.createRule(data, function (err) {
  478. * if (err) {
  479. * // Handle error.
  480. * }
  481. *
  482. * // Rule created.
  483. * });
  484. *
  485. * @param {Object} data Rule data object.
  486. * @param {Function} [cb] Callback function.
  487. *
  488. * @return {Promise|undefined}
  489. */
  490. utils.wrapPropertyMethod(ManagementClient, 'createRule', 'rules.create');
  491. /**
  492. * Get an Auth0 rule.
  493. *
  494. * @method getRule
  495. * @memberOf module:management.ManagementClient.prototype
  496. *
  497. * @example
  498. * management.getRule({ id: RULE_ID }, function (err, rule) {
  499. * if (err) {
  500. * // Handle error.
  501. * }
  502. *
  503. * console.log(rule);
  504. * });
  505. *
  506. * @param {Object} params Rule parameters.
  507. * @param {String} params.id Rule ID.
  508. * @param {Function} [cb] Callback function.
  509. *
  510. * @return {Promise|undefined}
  511. */
  512. utils.wrapPropertyMethod(ManagementClient, 'getRule', 'rules.get');
  513. /**
  514. * Delete an existing rule.
  515. *
  516. * @method deleteRule
  517. * @memberOf module:management.ManagementClient.prototype
  518. *
  519. * @example
  520. * auth0.deleteRule({ id: RULE_ID }, function (err) {
  521. * if (err) {
  522. * // Handle error.
  523. * }
  524. *
  525. * // Rule deleted.
  526. * });
  527. *
  528. * @param {Object} params Rule parameters.
  529. * @param {String} params.id Rule ID.
  530. * @param {Function} [cb] Callback function.
  531. *
  532. * @return {Promise|undefined}
  533. */
  534. utils.wrapPropertyMethod(ManagementClient, 'deleteRule', 'rules.delete');
  535. /**
  536. * Delete an existing rule.
  537. *
  538. * @method updateRule
  539. * @memberOf module:management.ManagementClient.prototype
  540. *
  541. * @example
  542. * management.deleteRule({ id: RULE_ID }, function (err) {
  543. * if (err) {
  544. * // Handle error.
  545. * }
  546. *
  547. * // Rule deleted.
  548. * });
  549. *
  550. * @param {Object} params Rule parameters.
  551. * @param {String} params.id Rule ID.
  552. * @param {Function} [cb] Callback function.
  553. *
  554. * @return {Promise|undefined}
  555. */
  556. utils.wrapPropertyMethod(ManagementClient, 'updateRule', 'rules.update');
  557. /**
  558. * Get all users.
  559. *
  560. * @method getUsers
  561. * @memberOf module:management.ManagementClient.prototype
  562. *
  563. * @example <caption>
  564. * This method takes an optional object as first argument that may be used to
  565. * specify pagination settings and the search query.
  566. * </caption>
  567. *
  568. * // Pagination settings.
  569. * var params = {
  570. * per_page: 10,
  571. * page: 2
  572. * };
  573. *
  574. * auth0.getUsers(params, function (err, users) {
  575. * console.log(users.length);
  576. * });
  577. *
  578. * @param {Object} [params] Users params.
  579. * @param {Number} [params.per_page] Number of users per page.
  580. * @param {Number} [params.page] Page number.
  581. * @param {Function} [cb] Callback function.
  582. *
  583. * @return {Promise|undefined}
  584. */
  585. utils.wrapPropertyMethod(ManagementClient, 'getUsers', 'users.getAll');
  586. /**
  587. * Get a user by its id.
  588. *
  589. * @method getUser
  590. * @memberOf module:management.ManagementClient.prototype
  591. *
  592. * @example
  593. * management.getUser({ id: USER_ID }, function (err, user) {
  594. * console.log(user);
  595. * });
  596. *
  597. * @param {Object} data The user data object.
  598. * @param {String} data.id The user id.
  599. * @param {Function} [cb] Callback function.
  600. *
  601. * @return {Promise|undefined}
  602. */
  603. utils.wrapPropertyMethod(ManagementClient, 'getUser', 'users.get');
  604. /**
  605. * Delete all users.
  606. *
  607. * @method deleteAllUsers
  608. * @memberOf module:management.ManagementClient.prototype
  609. *
  610. * @example
  611. * management.deleteAllUsers(function (err) {
  612. * if (err) {
  613. * // Handle error.
  614. * }
  615. *
  616. * // Users deleted
  617. * });
  618. *
  619. * @param {Function} [cb] Callback function
  620. *
  621. * @return {Promise|undefined}
  622. */
  623. utils.wrapPropertyMethod(ManagementClient, 'deleteAllUsers', 'users.deleteAll');
  624. /**
  625. * Delete a user by its id.
  626. *
  627. * @method deleteUser
  628. * @memberOf module:management.ManagementClient.prototype
  629. *
  630. * @example
  631. * management.deleteUser({ id: USER_ID }, function (err) {
  632. * if (err) {
  633. * // Handle error.
  634. * }
  635. *
  636. * // User deleted.
  637. * });
  638. *
  639. * @param {Object} params The user data object..
  640. * @param {String} params.id The user id.
  641. * @param {Function} [cb] Callback function
  642. *
  643. * @return {Promise|undefined}
  644. */
  645. utils.wrapPropertyMethod(ManagementClient, 'deleteUser', 'users.delete');
  646. /**
  647. * Create a new user.
  648. *
  649. * @method createUser
  650. * @memberOf module:management.ManagementClient.prototype
  651. *
  652. * @example
  653. * management.createUser(data, function (err) {
  654. * if (err) {
  655. * // Handle error.
  656. * }
  657. *
  658. * // User created.
  659. * });
  660. *
  661. * @param {Object} data User data.
  662. * @param {Function} [cb] Callback function.
  663. *
  664. * @return {Promise|undefined}
  665. */
  666. utils.wrapPropertyMethod(ManagementClient, 'createUser', 'users.create');
  667. /**
  668. * Update a user by its id.
  669. *
  670. * @method updateUser
  671. * @memberOf module:management.ManagementClient.prototype
  672. *
  673. * @example
  674. * var params = { id: USER_ID };
  675. *
  676. * management.updateUser(params, data, function (err, user) {
  677. * if (err) {
  678. * // Handle error.
  679. * }
  680. *
  681. * // Updated user.
  682. * console.log(user);
  683. * });
  684. *
  685. * @param {Object} params The user parameters.
  686. * @param {String} params.id The user id.
  687. * @param {Object} data New user data.
  688. * @param {Function} [cb] Callback function
  689. *
  690. * @return {Promise|undefined}
  691. */
  692. utils.wrapPropertyMethod(ManagementClient, 'updateUser', 'users.update');
  693. /**
  694. * Update the user metadata for a user.
  695. *
  696. * @method updateUserMetadata
  697. * @memberOf module:management.ManagementClient.prototype
  698. *
  699. * @example
  700. * var params = { id: USER_ID };
  701. * var metadata = {
  702. * address: '123th Node.js Street'
  703. * };
  704. *
  705. * management.updateUserMetadata(params, metadata, function (err, user) {
  706. * if (err) {
  707. * // Handle error.
  708. * }
  709. *
  710. * // Updated user.
  711. * console.log(user);
  712. * });
  713. *
  714. * @param {Object} params The user data object..
  715. * @param {String} params.id The user id.
  716. * @param {Object} metadata New user metadata.
  717. * @param {Function} [cb] Callback function
  718. *
  719. * @return {Promise|undefined}
  720. */
  721. utils.wrapPropertyMethod(ManagementClient, 'updateUserMetadata', 'users.updateUserMetadata');
  722. /**
  723. * Update the app metadata for a user.
  724. *
  725. * @method updateAppMetadata
  726. * @memberOf module:management.ManagementClient.prototype
  727. *
  728. * @example
  729. * var params = { id: USER_ID };
  730. * var metadata = {
  731. * foo: 'bar'
  732. * };
  733. *
  734. * management.updateAppMetadata(params, metadata, function (err, user) {
  735. * if (err) {
  736. * // Handle error.
  737. * }
  738. *
  739. * // Updated user.
  740. * console.log(user);
  741. * });
  742. *
  743. * @param {Object} params The user data object..
  744. * @param {String} params.id The user id.
  745. * @param {Object} metadata New app metadata.
  746. * @param {Function} [cb] Callback function
  747. *
  748. * @return {Promise|undefined}
  749. */
  750. utils.wrapPropertyMethod(ManagementClient, 'updateAppMetadata', 'users.updateAppMetadata');
  751. /**
  752. * Delete a multifactor provider for a user.
  753. *
  754. * @method deleteUserMultifactor
  755. * @memberOf module:management.ManagementClient.prototype
  756. *
  757. * @example
  758. * var params = { id: USER_ID, provider: MULTIFACTOR_PROVIDER };
  759. *
  760. * management.deleteUserMultifcator(params, function (err, user) {
  761. * if (err) {
  762. * // Handle error.
  763. * }
  764. *
  765. * // Users accounts unlinked.
  766. * });
  767. *
  768. * @param {Object} params Data object.
  769. * @param {String} params.id The user id.
  770. * @param {String} params.provider Multifactor provider.
  771. * @param {Function} [cb] Callback function
  772. *
  773. * @return {Promise|undefined}
  774. */
  775. utils.wrapPropertyMethod(ManagementClient, 'deleteUserMultifcator', 'users.deleteMultifactorProvider');
  776. /**
  777. * Unlink the given accounts.
  778. *
  779. * @method unlinkUsers
  780. * @memberOf module:management.ManagementClient.prototype
  781. *
  782. * @example
  783. * var params = { id: USER_ID, provider: 'auht0', user_id: OTHER_USER_ID };
  784. *
  785. * management.unlinkUsers(params, function (err, user) {
  786. * if (err) {
  787. * // Handle error.
  788. * }
  789. *
  790. * // Users accounts unlinked.
  791. * });
  792. *
  793. * @param {Object} params Linked users data.
  794. * @param {String} params.id Primary user ID.
  795. * @param {String} params.provider Identity provider in use.
  796. * @param {String} params.user_id Secondary user ID.
  797. * @param {Function} [cb] Callback function.
  798. *
  799. * @return {Promise|undefined}
  800. */
  801. utils.wrapPropertyMethod(ManagementClient, 'unlinkUsers', 'users.unlink');
  802. /**
  803. * Link the user with another account.
  804. *
  805. * @method linkUsers
  806. * @memberOf module:management.ManagementClient.prototype
  807. *
  808. * @example
  809. * var params = { id: USER_ID };
  810. * var data = {
  811. * user_id: 'OTHER_USER_ID',
  812. * connection_id: 'CONNECTION_ID'
  813. * };
  814. *
  815. * management.linkUsers(params, data, function (err, user) {
  816. * if (err) {
  817. * // Handle error.
  818. * }
  819. *
  820. * // Users linked.
  821. * });
  822. *
  823. * @param {String} userId ID of the primary user.
  824. * @param {Object} params Secondary user data.
  825. * @param {String} params.user_id ID of the user to be linked.
  826. * @param {String} params.connection_id ID of the connection to be used.
  827. * @param {Function} [cb] Callback function.
  828. *
  829. * @return {Promise|undefined}
  830. */
  831. utils.wrapPropertyMethod(ManagementClient, 'linkUsers', 'users.link');
  832. /**
  833. * Get all blacklisted tokens.
  834. *
  835. * @method getBlacklistedTokens
  836. * @memberOf module:management.ManagementClient.prototype
  837. *
  838. * @example
  839. * management.getBlacklistedTokens(function (err, tokens) {
  840. * console.log(tokens.length);
  841. * });
  842. *
  843. * @param {Function} [cb] Callback function.
  844. *
  845. * @return {Promise|undefined}
  846. */
  847. utils.wrapPropertyMethod(ManagementClient, 'getBlacklistedTokens', 'blacklistedTokens.getAll');
  848. /**
  849. * Blacklist a new token.
  850. *
  851. * @method blacklistToken
  852. * @memberOf module:management.ManagementClient.prototype
  853. *
  854. * @example
  855. * var token = {
  856. * aud: 'aud',
  857. * jti: 'jti'
  858. * };
  859. *
  860. * management.blacklistToken(token, function (err) {
  861. * if (err) {
  862. * // Handle error.
  863. * }
  864. *
  865. * // Token blacklisted.
  866. * });
  867. *
  868. * @param {Object} token Token data.
  869. * @param {String} token.aud Audience (your app client ID).
  870. * @param {String} token.jti The JWT ID claim.
  871. * @param {Function} [cb] Callback function.
  872. *
  873. * @return {Promise|undefined}
  874. */
  875. utils.wrapPropertyMethod(ManagementClient, 'blacklistToken', 'blacklistedTokens.add');
  876. /**
  877. * Get the email provider.
  878. *
  879. * @method getEmailProvider
  880. * @memberOf module:management.ManagementClient.prototype
  881. *
  882. * @example
  883. * management.getEmailProvider(function (err, provider) {
  884. * console.log(provider.length);
  885. * });
  886. *
  887. * @param {Function} [cb] Callback function.
  888. *
  889. * @return {Promise|undefined}
  890. */
  891. utils.wrapPropertyMethod(ManagementClient, 'getEmailProvider', 'emailProvider.get');
  892. /**
  893. * Configure the email provider.
  894. *
  895. * @method configureEmailProvider
  896. * @memberOf module:management.ManagementClient.prototype
  897. *
  898. * @example
  899. * management.configureEmailProvider(data, function (err) {
  900. * if (err) {
  901. * // Handle error.
  902. * }
  903. *
  904. * // Email provider configured.
  905. * });
  906. *
  907. * @param {Object} data The email provider data object.
  908. * @param {Function} [cb] Callback function.
  909. *
  910. * @return {Promise|undefined}
  911. */
  912. utils.wrapPropertyMethod(ManagementClient, 'configureEmailProvider', 'emailProvider.configure');
  913. /**
  914. * Delete email provider.
  915. *
  916. * @method deleteEmailProvider
  917. * @memberOf module:management.ManagementClient.prototype
  918. *
  919. * @example
  920. * management.deleteEmailProvider(function (err) {
  921. * if (err) {
  922. * // Handle error.
  923. * }
  924. *
  925. * // Email provider deleted.
  926. * });
  927. *
  928. * @param {Function} [cb] Callback function.
  929. *
  930. * @return {Promise|undefined}
  931. */
  932. utils.wrapPropertyMethod(ManagementClient, 'deleteEmailProvider', 'emailProvider.delete');
  933. /**
  934. * Update the email provider.
  935. *
  936. * @method updateEmailProvider
  937. * @memberOf module:management.ManagementClient.prototype
  938. *
  939. * @example
  940. * management.updateEmailProvider(data, function (err, provider) {
  941. * if (err) {
  942. * // Handle error.
  943. * }
  944. *
  945. * // Updated email provider.
  946. * console.log(provider);
  947. * });
  948. *
  949. * @param {Object} data Updated email provider data.
  950. * @param {Function} [cb] Callback function.
  951. *
  952. * @return {Promise|undefined}
  953. */
  954. utils.wrapPropertyMethod(ManagementClient, 'updateEmailProvider', 'emailProvider.update');
  955. /**
  956. * Get a the active users count.
  957. *
  958. * @method getActiveUsersCount
  959. * @memberOf module:management.ManagementClient.prototype
  960. *
  961. * @example
  962. * management.getActiveUsersCount(function (err, usersCount) {
  963. * if (err) {
  964. * // Handle error.
  965. * }
  966. *
  967. * console.log(usersCount);
  968. * });
  969. *
  970. * @param {Function} [cb] Callback function.
  971. *
  972. * @return {Promise|undefined}
  973. */
  974. utils.wrapPropertyMethod(ManagementClient, 'getActiveUsersCount', 'stats.getActiveUsersCount');
  975. /**
  976. * Get the daily stats.
  977. *
  978. * @method getDailyStats
  979. * @memberOf module:management.ManagementClient.prototype
  980. *
  981. * @example
  982. * var params = {
  983. * from: '{YYYYMMDD}', // First day included in the stats.
  984. * to: '{YYYYMMDD}' // Last day included in the stats.
  985. * };
  986. *
  987. * management.getDaily(params, function (err, stats) {
  988. * if (err) {
  989. * // Handle error.
  990. * }
  991. *
  992. * console.log(stats);
  993. * });
  994. *
  995. * @param {Object} params Stats parameters.
  996. * @param {String} params.from The first day in YYYYMMDD format.
  997. * @param {String} params.to The last day in YYYYMMDD format.
  998. * @param {Function} [cb] Callback function.
  999. *
  1000. * @return {Promise|undefined}
  1001. */
  1002. utils.wrapPropertyMethod(ManagementClient, 'getDailyStats', 'stats.getDaily');
  1003. /**
  1004. * Get the tenant settings..
  1005. *
  1006. * @method getTenantSettings
  1007. * @memberOf module:management.ManagementClient.prototype
  1008. *
  1009. * @example
  1010. * management.getSettings(function (err, settings) {
  1011. * if (err) {
  1012. * // Handle error.
  1013. * }
  1014. *
  1015. * console.log(settings);
  1016. * });
  1017. *
  1018. * @param {Function} [cb] Callback function.
  1019. *
  1020. * @return {Promise|undefined}
  1021. */
  1022. utils.wrapPropertyMethod(ManagementClient, 'getTenantSettings', 'tenant.getSettings');
  1023. /**
  1024. * Update the tenant settings.
  1025. *
  1026. * @method updateTenantSettings
  1027. * @memberOf module:management.ManagementClient.prototype
  1028. *
  1029. * @example
  1030. * management.updateTenantSettings(data, function (err) {
  1031. * if (err) {
  1032. * // Handle error.
  1033. * }
  1034. * });
  1035. *
  1036. * @param {Object} data The new tenant settings.
  1037. * @param {Function} [cb] Callback function.
  1038. *
  1039. * @return {Promise|undefined}
  1040. */
  1041. utils.wrapPropertyMethod(ManagementClient, 'updateTenantSettings', 'tenant.updateSettings');
  1042. /**
  1043. * Get a job by its ID.
  1044. *
  1045. * @method getJob
  1046. * @memberOf module:management.ManagementClient.prototype
  1047. *
  1048. * @example
  1049. * var params = {
  1050. * id: '{JOB_ID}'
  1051. * };
  1052. *
  1053. * management.getJob(params, function (err, job) {
  1054. * if (err) {
  1055. * // Handle error.
  1056. * }
  1057. *
  1058. * // Retrieved job.
  1059. * console.log(job);
  1060. * });
  1061. *
  1062. * @param {Object} params Job parameters.
  1063. * @param {String} params.id Job ID.
  1064. * @param {Function} [cb] Callback function.
  1065. *
  1066. * @return {Promise|undefined}
  1067. */
  1068. utils.wrapPropertyMethod(ManagementClient, 'getJob', 'jobs.get');
  1069. /**
  1070. * Given a path to a file and a connection id, create a new job that imports the
  1071. * users contained in the file and associate them with the given connection.
  1072. *
  1073. * @method importUsers
  1074. * @memberOf module:management.ManagementClient.prototype
  1075. *
  1076. * @example
  1077. * var params = {
  1078. * connection_id: '{CONNECTION_ID}',
  1079. * users: '{PATH_TO_USERS_FILE}'
  1080. * };
  1081. *
  1082. * management.get(params, function (err) {
  1083. * if (err) {
  1084. * // Handle error.
  1085. * }
  1086. * });
  1087. *
  1088. * @param {Object} data Users import data.
  1089. * @param {String} data.connectionId Connection for the users insertion.
  1090. * @param {String} data.users Path to the users data file.
  1091. * @param {Function} [cb] Callback function.
  1092. *
  1093. * @return {Promise|undefined}
  1094. */
  1095. utils.wrapPropertyMethod(ManagementClient, 'importUsers', 'jobs.importUsers');
  1096. /**
  1097. * Send a verification email to a user.
  1098. *
  1099. * @method sendEmailVerification
  1100. * @memberOf module:management.ManagementClient.prototype
  1101. *
  1102. * @example
  1103. * var params = {
  1104. * user_id: '{USER_ID}'
  1105. * };
  1106. *
  1107. * management.sendEmailVerification(function (err) {
  1108. * if (err) {
  1109. * // Handle error.
  1110. * }
  1111. * });
  1112. *
  1113. * @param {Object} data User data object.
  1114. * @param {String} data.user_id ID of the user to be verified.
  1115. * @param {Function} [cb] Callback function.
  1116. *
  1117. * @return {Promise|undefined}
  1118. */
  1119. utils.wrapPropertyMethod(ManagementClient, 'sendEmailVerification', 'jobs.verifyEmail');
  1120. /**
  1121. * Create a new password change ticket.
  1122. *
  1123. * @method createPasswordChangeTicket
  1124. * @memberOf module:management.ManagementClient.prototype
  1125. *
  1126. * @example
  1127. * var params = {
  1128. * result_url: '{REDIRECT_URL}', // Redirect after using the ticket.
  1129. * user_id: '{USER_ID}', // Optional.
  1130. * email: '{USER_EMAIL}', // Optional.
  1131. * new_password: '{PASSWORD}'
  1132. * };
  1133. *
  1134. * auth0.createPasswordChangeTicket(params, function (err) {
  1135. * if (err) {
  1136. * // Handle error.
  1137. * }
  1138. * });
  1139. *
  1140. * @param {Function} [cb] Callback function.
  1141. * @return {Promise}
  1142. */
  1143. utils.wrapPropertyMethod(ManagementClient, 'createPasswordChangeTicket', 'tickets.changePassword');
  1144. /**
  1145. * Create an email verification ticket.
  1146. *
  1147. * @method createEmailVerificationTicket
  1148. * @memberOf module:management.ManagementClient.prototype
  1149. *
  1150. * @example
  1151. * var data = {
  1152. * user_id: '{USER_ID}',
  1153. * result_url: '{REDIRECT_URL}' // Optional redirect after the ticket is used.
  1154. * };
  1155. *
  1156. * auth0.createEmailVerificationTicket(data, function (err) {
  1157. * if (err) {
  1158. * // Handle error.
  1159. * }
  1160. * });
  1161. *
  1162. * @param {Function} [cb] Callback function.
  1163. * @return {Promise}
  1164. */
  1165. utils.wrapPropertyMethod(ManagementClient, 'createEmailVerificationTicket', 'tickets.verifyEmail');
  1166. /**
  1167. * Get an Auth0 log.
  1168. *
  1169. * @method getLog
  1170. * @memberOf module:management.ManagementClient.prototype
  1171. *
  1172. * @example
  1173. * management.getLog({ id: EVENT_ID }, function (err, log) {
  1174. * if (err) {
  1175. * // Handle error.
  1176. * }
  1177. *
  1178. * console.log(log);
  1179. * });
  1180. *
  1181. * @param {Object} params Log parameters.
  1182. * @param {String} params.id Event ID.
  1183. * @param {Function} [cb] Callback function.
  1184. *
  1185. * @return {Promise|undefined}
  1186. */
  1187. utils.wrapPropertyMethod(ManagementClient, 'getLog', 'logs.get');
  1188. /**
  1189. * Get all logs.
  1190. *
  1191. * @method getLogs
  1192. * @memberOf module:management.ManagementClient.prototype
  1193. *
  1194. * @example
  1195. * management.getLogs(function (err, logs) {
  1196. * console.log(logs.length);
  1197. * });
  1198. *
  1199. * @param {Object} data Log data object.
  1200. * @param {Function} [cb] Callback function.
  1201. *
  1202. * @return {Promise|undefined}
  1203. */
  1204. utils.wrapPropertyMethod(ManagementClient, 'getLogs', 'logs.getAll');
  1205. module.exports = ManagementClient;