Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

157
Views
Cómo asignar ROLES en _user DB para Cloudant

¿Cómo agrego roles a los usuarios en la base de datos de usuarios de Cloudant? (_users) No he podido resolver esto usando Google o Cloudant Docs. Veo alguna mención de un Cloudant _user db y no he encontrado cómo usarlo.

He construido una API con nodejs y express. con

 const { CloudantV1 } = require('@ibm-cloud/cloudant'); const { BasicAuthenticator } = require('ibm-cloud-sdk-core');

Puedo crear ApiKeys y asignar funciones con service.putCloudantSecurityConfiguration().

resultado de service.getSecurity() a continuación:

 cloudant: { 'apikey-01beebbe10ae46ad9e86cc16a2937939': [ '_replicator', '_writer', '_reader' ], 'apikey-3044abd26f324792a8be5809a5521400': [ '_writer', '_reader' ], 'apikey-8d98aa26f1d246f6b736f313bd45d630': [ '_writer', '_reader' ], 'apikey-231cdadcf38945e9ab48125adddc0fdb': [], 'apikey-7ec3ebdd9c5b4aa691685fae251a255d': [ '_writer', '_reader' ], 'apikey-061e3a0ae05d486583dda500ee6685f6': [ '_writer', '_reader' ], 'apikey-0324472243bd4c0da6ea6e9022e102c8': [ '_writer', '_reader' ]

}

Cuando miro el service.getSessionInformation(); resultado, veo:

 "result": { "userCtx": { "roles": [], "name": "apikey-01beebbe10ae46ad9e86cc16a2937939" }, "ok": true, "info": { "authentication_handlers": [ "iam", "cookie", "default", "local" ], "authenticated": "default", "authentication_db": "bm-cc-us-south-18/users" } }

Matriz de roles vacía!

Quiero usar estas nuevas credenciales de apikey con Pouchdb como en:

 localDB.replicate.to(https://<apikey>:<pass>@<cloudantURL>/<dbname> ).on('complete', function () { // yay, we're done! }).on('error', function (err) { // boo, something went wrong! });

me sale error:

mensaje: "No está autorizado para acceder a esta base de datos".

Gracias por tu ayuda.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Cloudant, como ha descubierto, le permite crear pares de clave de API/contraseña que tienen acceso a una o más bases de datos. Puede establecer los permisos para cada clave de API en cada base de datos, como ya lo ha hecho.

El punto final GET /session (al que está accediendo con la función JavaScript service.getSessionInformation() ) no devuelve los permisos de la clave API en la matriz de roles , pero no se desanime: su clave API tiene los permisos que definió en el primer paso, por lo que debería poder leer/escribir/consultar datos normalmente con esa clave API.

Tenga en cuenta que este mecanismo de autenticación es independiente de la base de datos _users de estilo CouchDB.


por ejemplo, con PouchDB

 const PouchDB = require('pouchdb') const db = new PouchDB('test') const username = 'apikey-somevalue' const password = 'somepassword' const hostname = 'myhost.cloudant.com' const dbname = 'pouch' const remoteDB = `https://${username}:${password}@${hostname}/${dbname}` db.sync(remoteDB).on('complete', async function () { console.log('done') const docs = await db.allDocs() console.log(docs) }).on('error', function (err) { console.error(err) });
about 4 years ago · Juan Pablo Isaza Report

0

La respuesta de Glenn es buena, para mi caso hay objetos de usuario adicionales. Esto fue después de un mes de ir y venir con Cloudant Help. Necesitaba eliminar los objetos de usuario adicionales en la respuesta de "service.getSecurity({"

 delete response.result.cloudant['nobody']; delete response.result['members'];

El único objeto que necesito es el "cloudant"

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!