diff --git a/docs/ACCESS_CONTROLLERS.md b/docs/ACCESS_CONTROLLERS.md index 5436059..68ca9a4 100644 --- a/docs/ACCESS_CONTROLLERS.md +++ b/docs/ACCESS_CONTROLLERS.md @@ -8,15 +8,13 @@ Different access controllers can be assigned to the database using the `AccessCo ```js import { create } from 'ipfs-core' -import { createOrbitDB, getAccessController } from '@orbitdb/core' +import { createOrbitDB } from '@orbitdb/core' +import * as SomeAccessController from 'some-access-controller.js' const ipfs = create({ options }) const orbitdb = await createOrbitDB({ ipfs }) -// SomeAccessController must already be available in the AC list. -const SomeAccessController = getAccessController('some-access-controller') - const db = orbitdb.open('my-db', { AccessController: SomeAccessController() }) ``` @@ -37,7 +35,7 @@ To change write access, pass the IPFSAccessController with the `write` parameter ```js import { create } from 'ipfs-core' -import { createOrbitDB, Identities, getAccessController } from '@orbitdb/core' +import { createOrbitDB, Identities, IPFSAccessController } from '@orbitdb/core' const ipfs = create({ options }) @@ -47,9 +45,6 @@ const anotherIdentity = identities.createIdentity('userB') // OrbitDB will create an identity using the id 'UserA'. const orbitdb = await createOrbitDB({ ipfs, id: 'userA' }) -// Retrieve the access controller from the list of preloaded ACs. -const IPFSAccessController = getAccessController('ipfs') - // Open a db with write access for userA and userB. const db = orbitdb.open('my-db', { AccessController: IPFSAccessController({ write: [orbitdb.identity.id, anotherIdentity.id]) }) ``` @@ -58,14 +53,12 @@ To allow anyone to write to the database, specify the wildcard '*': ```js import { create } from 'ipfs-core' -import { createOrbitDB, Identities, getAccessController } from '@orbitdb/core' +import { createOrbitDB, Identities, IPFSAccessController } from '@orbitdb/core' const ipfs = create({ options }) const orbitdb = await createOrbitDB({ ipfs }) -const IPFSAccessController = getAccessController('ipfs') - const db = orbitdb.open('my-db', { AccessController: IPFSAccessController({ write: ['*'] }) }) ``` @@ -77,7 +70,7 @@ The OrbitDB access controller provides configurable write access using grant and ```js import { create } from 'ipfs-core' -import { createOrbitDB, Identities, getAccessController } from '@orbitdb/core' +import { createOrbitDB, Identities, OrbitDBAccessController } from '@orbitdb/core' const ipfs = create({ options }) @@ -86,9 +79,6 @@ const orbitdb = await createOrbitDB({ ipfs }) const identities = await Identities() const anotherIdentity = identities.createIdentity('userB') -// Retrieve the access controller from the list of preloaded ACs. -const OrbitDBAccessController = getAccessController('orbitdb') - const db = orbitdb.open('my-db', { AccessController: OrbitDBAccessController({ write: [orbitdb.identity.id, anotherIdentity.id]) }) db.access.grant('write', anotherIdentity.id) diff --git a/docs/GETTING_STARTED.md b/docs/GETTING_STARTED.md index 7891496b..ac9bd53 100644 --- a/docs/GETTING_STARTED.md +++ b/docs/GETTING_STARTED.md @@ -117,7 +117,7 @@ npm init Create a new file called index.js and paste in the following code: ```js -import { OrbitDB, getAccessController } from '@orbitdb/core' +import { OrbitDB, IPFSAccessController } from '@orbitdb/core' import { create } from 'ipfs-core' const main = async () => { @@ -139,10 +139,6 @@ const main = async () => { // ./[randDir]/ipfs. const orbitdb = await createOrbitDB({ ipfs, directory: './' + randDir + '/orbitdb' }) - // Get the IPFS AccessController function. We will need it to ensure everyone - // can write to the database. - const AccessController = getAccessController('ipfs') - let db if (process.argv[2]) { @@ -154,7 +150,7 @@ const main = async () => { // to write to the database. A more robust solution would use the // OrbitDBAccessController to provide "fine-grain" access using grant and // revoke. - db = await orbitdb.open('my-db', { AccessController: AccessController({ write: ['*']})}) + db = await orbitdb.open('my-db', { AccessController: IPFSAccessController({ write: ['*']})}) } // Copy this output if you want to connect a peer to another. diff --git a/src/access-controllers/index.js b/src/access-controllers/index.js index 95c0b30..4254146 100644 --- a/src/access-controllers/index.js +++ b/src/access-controllers/index.js @@ -39,22 +39,12 @@ const useAccessController = (accessController) => { accessControllers[accessController.type] = accessController } -/** - * Removes an access controller from the list. - * @param {string} type A valid access controller type. - * @static - */ -const removeAccessController = type => { - delete accessControllers[type] -} - useAccessController(IPFSAccessController) useAccessController(OrbitDBAccessController) export { getAccessController, useAccessController, - removeAccessController, IPFSAccessController, OrbitDBAccessController } diff --git a/test/orbitdb-access-controllers.test.js b/test/orbitdb-access-controllers.test.js index 3020f71..f77da6a 100644 --- a/test/orbitdb-access-controllers.test.js +++ b/test/orbitdb-access-controllers.test.js @@ -2,7 +2,7 @@ import { strictEqual, deepStrictEqual, notStrictEqual } from 'assert' import { rimraf } from 'rimraf' import * as IPFS from 'ipfs-core' import OrbitDB from '../src/orbitdb.js' -import { IPFSAccessController, OrbitDBAccessController, useAccessController, getAccessController, removeAccessController } from '../src/access-controllers/index.js' +import { IPFSAccessController, OrbitDBAccessController, useAccessController, getAccessController } from '../src/access-controllers/index.js' import config from './config.js' import pathJoin from '../src/utils/path-join.js' @@ -38,9 +38,6 @@ describe('Add a custom access controller', function () { await ipfs.stop() } - // Remove the added custom database type from OrbitDB import - removeAccessController(type) - await rimraf('./orbitdb') await rimraf('./ipfs1') }) @@ -94,18 +91,5 @@ describe('Add a custom access controller', function () { it('returns custom access controller after adding it', async () => { deepStrictEqual(getAccessController(type), CustomAccessController) }) - - it('can be removed from supported access controllers', async () => { - let err - removeAccessController(type) - - try { - getAccessController(type) - } catch (e) { - err = e.toString() - } - - deepStrictEqual(err, 'Error: AccessController type \'custom!\' is not supported') - }) }) })