Class: Session

@nginstack/engine/lib/session/Session~ Session


new Session()

Representa a sessão JavaScript corrente, responsável pela execução do script.

Members


application :DBKey

Aplicativo ao qual esta sessão JavaScript está associada.

A associação de uma sessão a um aplicativo é realizada indiretamente por meio da propriedade module:@nginstack/engine/lib/http/RealmConfig~RealmConfig#application.

Type:
  • DBKey

clientId :string

Identificador único associado ao dispositivo ou navegador utilizado pelo cliente no acesso ao sistema.

Esta propriedade somente estará preenchida se o realm desta sessão estiver configurado com a propriedade clientTrackingEnabled ativa.

Type:
  • string
See:

createKeyLicense :number

Utilizado para habilitar a geração de chaves negativas de um produto. Deve ser informada a chave do produto (tabela iLicense) para chaves negativas ou zero para chaves positivas.
Será gerado um erro ao tentar alterar esta propriedade quando o usuário logado não tiver poder para alterar o produto informado.

Type:
  • number

id :string

Identificador único.

Type:
  • string

lastPath :string

URL do último script executado. Esta propriedade é desaconselhada e não deve mais ser utilizada.

Type:
  • string
Deprecated:
  • Yes

realm :string

Nome do realm ao qual esta sessão JavaScript pertence.

O realm de sessões tem o objetivo de isolar as sessões JavaScript com propósito comum, evitando que uma sessão JavaScript de um aplicativo seja utilizada por outro. Por meio dele, é possível indicar se a sessão deve preservar o seu estado (stateful ou stateless), além do seu tempo de vida e de inatividade. Ver module:@nginstack/engine/lib/http/RealmConfig para mais detalhes.

Type:
  • string

runtime :string

Runtime JavaScript utilizado por esta sessão. Valores possíveis: "ije" e "v8".

O runtime JavaScript é definido pela propriedade "runtime" da configuração do realm e não pode ser modificado uma vez que a sessão é criada. Ver module:@nginstack/engine/lib/http/RealmConfig para mais detalhes.

Type:
  • string

scope :string

Relação dos escopos de autorização permitidos na sessão corrente do usuário.

Caso a sessão tenha sido autenticada por meio de um token de autorização, será retornado o escopo desse token. Caso tenha sido via credenciais do usuário, serão retornados todos os escopos de autorização atribuídos a esse usuário.

Type:
  • string
See:

scriptURI :string|number

Indica o script que está em execução neste ambiente.

Type:
  • string | number

startupScriptsExecuted :boolean

Indica se o método #executeStartupScripts já foi chamado.

Type:
  • boolean

trackingId :string

Esta é uma propriedade que, se definida, será utilizada pelo applyUpdates e pelo executeDDL para preencher o campo iTag da iLog em todas as alterações realizadas nos registros do sistema nesta sessão.

Com o preenchimento do trackingId, é possível agrupar os registros na iLog por tag, facilitando a auditoria e desfazimento das alterações.

Recomenda-se que a string utilizada nesta propriedade seja um identificador único. Para isto, utilize a função createGUID(removeFormatChars).

Todas as instâncias de Connection e Database criadas nesta sessão utilizarão o identificador de rastreio configurado, ao não ser que a propriedade trackingId dessas instâncias tenha sido configurada com um valor diferente.

Type:
  • string
See:

userKey :number

Chave da tabela iGroupUser que indica o usuário desta sessão. Caso o usuário não tenha realizado login, será retornado -1, chave do usuário "anonymous". Uma sessão que não tenha realizado login não tem acesso ao banco de dados.
Em bases de dados antigas, que ainda utilizam o antigo modelo de segurança, a chave retornada pode ser da tabela ENTIDADE.

Type:
  • number

userName :string

Nome do usuário logado. Corresponde ao campo iName da tabela iGroupUser do registro indicado pela propriedade session.userKey.

Type:
  • string

Methods


authorizeToken(authToken)

Autoriza um token previamente criado a ser utilizado pelo sistema. Este token será vinculado ao usuário desta sessão.

Parameters:
Name Type Description
authToken AuthToken

Token de autorização.

Returns:

Id único do token que será utilizado para restaurar ou validar uma sessão.

Type
string

executeStartupScripts()

Executa todos os registros da virtual file system que possuam o mime-type "application/x-startup" ordenados pelo campo iUrl.


hasRequest()

Verifica se a sessão está associada a uma requisição HTTP.

Sessões criadas no contexto de uma requisição HTTP têm acesso às informações da requisição por meio da variável global request. Para elas, este método retornará true durante o atendimento da requisição HTTP.

Sessões criadas em contextos onde não há uma requisição HTTP, como as sessões criadas pelas classes Scheduler e ScriptRunner, também têm a variável request publicada como global por motivos históricos. No entanto, as propriedades e métodos de request falham com um erro indicando que os dados da requisição não estão disponíveis. Para esses tipos de sessões, este método retornará false, permitindo verificar se a variável global request pode ser utilizada.

Returns:

True se a sessão estiver associada a uma requisição HTTP em atendimento.

Type
boolean
Example
if (session.hasRequest()) {
  const isLocalHost = request.remoteAddress == '127.0.0.1';
}

limitKeyCreation(limit)

Configura o número máximo de chaves, positivas e negativas, a serem criadas em uma mesma sessão. Caso seja passado null como parâmetro, a restrição é retirada, permitindo a criação sem limite.

Parameters:
Name Type Description
limit number

Número máximo de chaves para criação.


login(userName, password)

Realiza o login da sessão, permitindo que o usuário tenha acesso a informações do banco de dados.

Parameters:
Name Type Description
userName string

Nome do usuário.

password string

Senha do usuário.

See:
Returns:

True se o usuário e a senha são válidos.

Type
boolean

loginByAuthToken(authToken)

Efetua o login na sessão utilizando um token criado no sistema anteriormente pela classe AuthToken ou por meio de tokens de identificação gerados por provedores de identidade externos ao sistema.

Tokens do sistema devem ser autorizados utilizando os métodos Session.authorizeToken ou Security.authorizeToken, momento em que será gerado o token de identificação esperado por este método.

Tokens de identificação externos podem ser gerados utilizando a classe OpenIdClient. Somente serão aceitos tokens dos provedores de identidade configurados em "Admin > Segurança > Provedores de identidade".

Parameters:
Name Type Description
authToken string

Token de autorização do usuário.

See:

loginByToken(token)

Realiza o login da sessão através de um token de autenticação, permitindo que o usuário tenha acesso a informações do banco de dados. Se o token é do tipo "local autenticação", não será possível executar funções que necessitem autenticação em outro servidor(executeScript).

Parameters:
Name Type Description
token string

Token de Autenticação

Deprecated:
  • Utilize a função #loginByAuthToken.
Returns:

True se o usuário foi autenticado com sucesso.

Type
boolean

logout()

Realiza o logout da sessão, impedindo que o usuário possa acessar informações do banco de dados enquanto não ocorrer um novo login.

See:

newSessionToken(scope)

Cria um token de autorização temporário com as credenciais do usuário logado que é válido apenas enquanto esta sessão existir.

O token de sessão somente pode ser criado em sessões do tipo stateful e deve ser utilizado exclusivamente no Engine onde foi gerado. Portanto, o seu uso em rotas HTTP em um cliente Web deve ser realizado com o envio de credenciais, permitindo que os cookies de controle de afinidade de sessão sejam enviados para os eventuais balanceadores de carga que necessitem deles.

Parameters:
Name Type Description
scope string | Array.<string>

Lista separada por espaço dos identificadores dos escopos de uso autorizados por este token. Caso seja informado um Array, ele será unificado pelo método join(' ') e convertido em uma lista.

Returns:

Token de acesso temporário vinculado à sessão.

Type
string

revokeAuthTokenByKey(key)

Revoga a autorização de um token, tornando-o inutilizável.

Parameters:
Name Type Description
key number

Chave do registro do AuthToken.

See:

setPassword(newPassword)

Altera a senha do usuário logado na sessão.

Parameters:
Name Type Description
newPassword string

Nova senha do usuário.


setTimeout(minutes [, opt_hours] [, opt_days] [, opt_months] [, opt_years])

Indica o tempo máximo de inatividade da sessão. Após o período definido, a sessão não poderá ser mais utilizada e será destruída, liberando os recursos de memória alocados. Se for informado apenas o parâmetro minutes com 0, será indicado que a sessão deve ser expirada logo após a execução do script.
Este método é desaconselhado e não deve mais ser utilizado. A configuração de inatividade deve ser realizada no x-class da classe que contém o script através das propriedades "this.session.maxEnvironmentLifeTime", "this.session.maxEnvironmentInactiveTime" e "this.session.maxSessionInactiveTime".

Parameters:
Name Type Argument Description
minutes number
opt_hours number <optional>
opt_days number <optional>
opt_months number <optional>
opt_years number <optional>

updateAuthToken(authToken)

Atualiza um token previamente autorizado pelo método Security.authorizeToken. Após a autorização de um token, apenas as propriedades module:@nginstack/engine/lib/security/AuthToken~AuthToken#description e module:@nginstack/engine/lib/security/AuthToken~AuthToken#expires podem ser modificadas.

Parameters:
Name Type Description
authToken AuthToken

Token que terá as suas propriedades atualizadas.

See: