Class: ProductManager

@nginstack/engine/lib/product/ProductManager~ ProductManager


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.

See:
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.

See:

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.

See:
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.

See:

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