new ProductManager()
Classe que permite criação e o controle dos produtos/módulos desenvolvidos no sistema.
Ao criar um produto é reservada uma faixa única de chaves negativas que é associada ao nome do produto. O registro de um produto é público, global e distribuído em conjunto com Engine.
Após a criação do produto, a empresa desenvolvedora deve escolher uma base para ativar o seu desenvolvimento. Essa base será responsável por criar os registros de chave negativa que irão compor o produto desenvolvido e também será utilizada para criar licenças de uso para os eventuais clientes usuários desse produto.
Methods
-
<static> getInstance()
-
Obtém uma instância compartilhada desta classe.
Returns:
- Type
- ProductManager
-
authenticatePassword(product, password)
-
Verifica se a senha mestre de um produto habilitado para desenvolvimento está correta.
Parameters:
Name Type Description product
number Chave do produto a ser verificado.
password
string Senha mestre do produto.
Returns:
True se a senha informada está correta.
- Type
- boolean
-
changePassword(product, currentPassword, newPassword)
-
Altera a senha mestre de um produto habilitado para desenvolvimento.
Parameters:
Name Type Description product
number Chave do produto a ser ter a senha mestre alterada.
currentPassword
string Senha mestre atual do produto.
newPassword
string Nova senha mestre do produto.
-
createProduct(productIndo, userId, password)
-
Cria um novo produto do sistema.
Parameters:
Name Type Argument Description productIndo
Object Dados do produto a ser criado.
Properties
Name Type Argument Description name
string Nome do produto.
keyQuantity
number Quantidade de chaves negativas reservadas ao produto.
keyList
string <optional>
Lista de chaves que fazem parte do produto, mas não compõem a faixa de chaves.
productInfo.requiredProducts
number | string <optional>
Chave ou uma lista de chaves separada por "," dos produtos que são requeridos para o funcionamento do produto a ser criado.
productInfo.key
number <optional>
A chave do produto a ser criado. Ela deve ser informada apenas quando se deseja reaproveitar ou recriar um produto existente.
productInfo.baseKey
number <optional>
Menor chave da faixa de chaves a ser reservada para o produto. Ela deve ser informada apenas quando se deseja reaproveitar ou recriar um produto existente.
productInfo.publicKey
string <optional>
Chave pública RSA no formato PEM associada ao produto. Uma par de chaves RSA pode ser gerada para permitir a encriptação de dados que podem ser descriptografados apenas se uma base estiver licenciada com este produto. A chave privada é secreta e de conhecimento exclusivo do desenvolvedor do produto. A chave pública deve ser informada nesta propriedade no momento da criação do produto. A chave privada do desenvolvedor deve ser guardada em segurança, pois ela será exigida pelo método module:@nginstack/engine/lib/license/LicenseManager~LicenseManager#encryptLicensedData ao criptografar um dado associado ao licenciamento do produto.
userId
string Nome ou e-mail do usuário com permissão para criar registros no produto Engine.
password
string Senha do usuário com permissão para criar registros no produto Engine.
Returns:
Texto codificado com os dados sobre o produto criado. Essa string deve ser guardada com segurança, pois será requerida como parâmetro para o método #enableDevelopment na base de dados que será utilizada para desenvolver o produto.
- Type
- string
-
enableDevelopment(productStream, password)
-
Ativa o desenvolvimento de um produto na base de dados corrente. Essa base se tornará responsável por controlar a geração de chaves negativas associada a esse produto.
Importante: um produto pode ser ativo em uma única base de dados. Caso um produto seja ativo em mais de uma base de dados, poderão ocorrer problemas de geração de chaves negativas duplicadas.
Parameters:
Name Type Description productStream
string Texto codificado contendo detalhes sobre o produto a ser habilitado. Ele é gerado pelo método #createProduct.
password
string Senha mestre do produto que será habilitado. Guarde essa senha com segurança, pois ela será exigida ao configurar os desenvolvedores habilitados a modificar o produto e na criação de licenças de uso.
-
getChangeableProducts(userKey)
-
Obtém as chaves dos produtos que podem ser modificados pelo usuário informado.
Parameters:
Name Type Description userKey
number Chave do usuário.
Returns:
Chaves dos produtos que podem ser modificados.
- Type
- Array
-
getProductFromKey(key)
-
Obtém a chave do produto ao qual uma chave pertence.
Parameters:
Name Type Description key
number A chave cujo produto se deseja obter.
Returns:
A chave do produto ao qual a chave pertence. Se a chave informada for positiva, será retornado um valor nulo.
- Type
- number | null
-
getProductNameFromKey(key)
-
Obtém o nome do produto ao qual uma chave pertence.
Parameters:
Name Type Description key
number A chave cujo produto se deseja obter.
Returns:
Nome do produto ao qual a chave pertence. Será retornada uma string vazia se a chave informada for positiva ou se ela não estiver associada a um produto.
- Type
- string
-
setChangeableProducts(userKey, products, passwords)
-
Define os produtos que poderão ser modificados pelo usuário informado.
Parameters:
Name Type Description userKey
number Chave do usuário.
products
Array Array com as chaves dos produtos. Informe "null" para retirar o poder de alteração do usuário.
passwords
Array Array com as senhas mestres dos produtos.
-
userCanChangeRecord(recordKey, userKey)
-
Verifica se o registro associado a um produto do sistema pode ser alterado pelo usuário.
Este método não verifica as permissões associadas às classes de dados do sistema, se restringindo apenas à verificar se o usuário é um desenvolvedor autorizado a modificar o produto associado à chave.
Chaves associadas aos produtos do sistema são valores inteiros negativos. Este método sempre retornará
true
se for informada uma chave positiva.Parameters:
Name Type Description recordKey
number | DBKey Chave do registro associado a um produto do sistema.
userKey
number | DBKey Chave do usuário que terá a permissão verificada.
Returns:
True se o usuário informado for um desenvolvedor autorizado a modificar o registro ou se a chave for um valor positivo.
- Type
- boolean