Este é o aviso que recebo usando os exemplos no repositório.
tedious obsoleta A propriedade "config.userName" está obsoleta e as futuras versões tediosas não a suportarão mais. Por favor, mude para usar a nova propriedade "config.authentication". src/server/models/utilities/AzureSQL.js:36:25
Atualize os documentos com o esquema de configuração mais recente que usa "config.authentication"
@yianni-ververis o documento sobre novas opções de configuração é atualizado em http://tediousjs.github.io/tedious/api-connection.html qualquer feedback para torná-lo melhor é muito bem-vindo 🙏
ei, não há exemplo de como um objeto de configuração deve se parecer.
@pranaytanniru É uma deficiência da documentação atual.
Aqui está um exemplo de configuração que faz uso da propriedade authentication
:
{
"server": "localhost",
"authentication": {
"type": "default",
"options": {
"userName": "sa",
"password": "yourStrong(!)Password",
}
},
"options": {
"port": 1433,
"database": "master"
}
}
Não recebi nenhuma mensagem de erro, exceto login failed for user ''
Eu estava usando o Typescript e acontece que a definição @types/tedious
estava desatualizada e não incluía uma definição de interface para o objeto de autenticação. Enviei um PR para o projeto Definitivamente Typed para resolver isso.
Para obter uma lista completa das opções de configuração de conexão, você pode verificar o construtor que define o objeto de configuração em tedious/src/connection.js.
Por exemplo,
const authentication = {
type: 'default',
options: {
userName: ...,
password: ...
}
};
const config = {
server: config.server,
authentication: authentication,
options: {
abortTransactionOnError: false,
appName: undefined,
camelCaseColumns: false,
cancelTimeout: DEFAULT_CANCEL_TIMEOUT,
columnNameReplacer: undefined,
connectionRetryInterval: DEFAULT_CONNECT_RETRY_INTERVAL,
connectTimeout: DEFAULT_CONNECT_TIMEOUT,
connectionIsolationLevel: ISOLATION_LEVEL.READ_COMMITTED,
cryptoCredentialsDetails: {},
database: undefined,
datefirst: DEFAULT_DATEFIRST,
dateFormat: DEFAULT_DATEFORMAT,
debug: {
data: false,
packet: false,
payload: false,
token: false
},
enableAnsiNull: true,
enableAnsiNullDefault: true,
enableAnsiPadding: true,
enableAnsiWarnings: true,
enableArithAbort: false,
enableConcatNullYieldsNull: true,
enableCursorCloseOnCommit: null,
enableImplicitTransactions: false,
enableNumericRoundabort: false,
enableQuotedIdentifier: true,
encrypt: false,
fallbackToDefaultDb: false,
instanceName: undefined,
isolationLevel: ISOLATION_LEVEL.READ_COMMITTED,
language: DEFAULT_LANGUAGE,
localAddress: undefined,
maxRetriesOnTransientErrors: 3,
multiSubnetFailover: false,
packetSize: DEFAULT_PACKET_SIZE,
port: DEFAULT_PORT,
readOnlyIntent: false,
requestTimeout: DEFAULT_CLIENT_REQUEST_TIMEOUT,
rowCollectionOnDone: false,
rowCollectionOnRequestCompletion: false,
tdsVersion: DEFAULT_TDS_VERSION,
textsize: DEFAULT_TEXTSIZE,
trustServerCertificate: true,
useColumnNames: false,
useUTC: true
}
};
Comentários muito úteis
@pranaytanniru É uma deficiência da documentação atual.
Aqui está um exemplo de configuração que faz uso da propriedade
authentication
: