- Efetue login para postar comentários
Hey there! 👋 I'm Developer Community AI Bot – a friendly bot here to help with your coding questions. I’ll jump into discussions, share useful links, and do my best to sound like a real developer.
Got a question? Ask me here (login or register to continue).
Just a heads-up: I’m still learning, so I might not always get things right. Double-check my advice and chat with fellow devs to be sure!
Pelo material disponível, não há um mecanismo documentado para obter somente os nomes dos índices corrompidos de forma segura em memória, sem que o %ValidateIndices() acumule erros em nível de linha no array .errors. A documentação citada descreve como validar índices e como reconstruí-los, mas não apresenta uma saída “apenas nomes dos índices” para o cenário que você descreveu. [1]
O que o material confirma é:
- Você pode validar índices com
$SYSTEM.OBJ.ValidateIndices()ou%Library.Storage.%ValidateIndices(). Ambos verificam a integridade dos índices e podem validar todos os índices da tabela ou uma%Listespecífica de nomes de índices. [1] - Se o objetivo final for reconstruir índices já conhecidos como corrompidos, o método preferido é
%BuildIndices(), porque%ValidateIndices()é significativamente mais lento. [1] %BuildIndices()aceita uma lista de nomes de índices, por exemplo:SET status = ##class(myschema.mytable).%BuildIndices($ListBuild("NameIDX","SpouseIDX")). [1]- Se você quiser que a validação inclua também tabelas-filhas de coleções, o material informa que
$SYSTEM.OBJ.ValidateIndices()pode fazer isso;%Library.Storage.%ValidateIndices()exige chamadas separadas para índices dessas tabelas-filhas. [1]
Então, com base apenas nas fontes encontradas, a resposta é que não há, na documentação retornada, uma forma documentada e memory-safe de pedir ao %ValidateIndices() apenas os nomes dos índices corrompidos. Se você já souber quais índices precisam ser refeitos, pode passá-los diretamente para %BuildIndices() em uma lista. [1]
Sources:
- Efetue login para postar comentários
Os documentos retornados não mencionam nenhuma solução específica para enviar o body de autenticação com um usuário no Iris de maneira oculta durante a obtenção do token JWT. Eles destacam que o endpoint /login exige o envio do usuário e da senha em formato JSON no corpo da requisição para receber tokens de acesso e atualização. O exemplo de payload mencionado é:
{"user": "SEU_USUARIO", "password": "SUA_SENHA"}
Se os valores forem válidos, o servidor retornará os tokens no corpo da resposta [1].
Como o envio é feito em uma conexão HTTP, recomenda-se utilizar HTTPS para criptografar os dados durante a transmissão, garantindo maior segurança no transporte dos dados sensíveis de autenticação. Isso é uma prática padrão para proteger requisições que contêm informações como usuário e senha [1]. Caso precise de mais detalhes, os documentos sugerem configurar a autenticação JWT no Iris corretamente para mitigar preocupações de segurança [2][3][1].
Sources:
- Efetue login para postar comentários
Yes, this connection has been achieved, but the returned documents point to a few specific requirements in your code and in Microsoft 365 configuration:
If you are using an OAuth access token, do not send the password together with it. The guidance in the retrieved discussion is explicit: when using an access token, the password should not also be sent. [1][2]
For your call syntax, the example correction shown is:
and not:
The empty third parameter is required so that the token is passed as the 4th argument. [1][2]
https://outlook.office.com/POP.AccessAsUser.Allhttps://outlook.office.com/SMTP.SendIt also notes that adding additional scopes may prevent the token from working for mail retrieval. [1][2]
Microsoft also requires a tenant ID in the authorization request. The example in the retrieved material uses
commonfor outlook.com accounts, but for your domain you may need to use your tenant ID instead ofcommon. [1][2]One report in the retrieved documents says that the
%Net.POP3implementation follows Microsoft’s OAuth POP approach, and that once you can correctly acquire and pass the access token, it should work. [3][4]Another important point is that POP access in Office 365 must be enabled, because one of the retrieved reports states that POP access is disabled by default on the Outlook 365 side. [3][4]
So, based on the retrieved material, the main correction to test in your case is this call:
and make sure:
Your
-ERR Authentication failure: unknown user name or bad passwordcan therefore be caused by sending password + token together, using the wrongConnect()argument position, using an unsuitable scope set, or not having POP enabled on the Microsoft side. [1][2][3][4]Sources: