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
-
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:
-
- module:@nginstack/engine/lib/security/AuthToken~AuthToken#scope
- module:@nginstack/engine/lib/security/Security~Security#getUserScope
-
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
eDatabase
criadas nesta sessão utilizarão o identificador de rastreio configurado, ao não ser que a propriedadetrackingId
dessas instâncias tenha sido configurada com um valor diferente.Type:
- string
-
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
eScriptRunner
, também têm a variávelrequest
publicada como global por motivos históricos. No entanto, as propriedades e métodos derequest
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 globalrequest
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.
-
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étodojoin(' ')
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.
-
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.