Skip to content

Develop - #235

Merged
elson-vinicius-lopes merged 4 commits into
masterfrom
develop
Aug 31, 2026
Merged

Develop#235
elson-vinicius-lopes merged 4 commits into
masterfrom
develop

Conversation

@elson-vinicius-lopes

Copy link
Copy Markdown
Collaborator

No description provided.

elson-vinicius-lopes and others added 4 commits August 30, 2026 13:56
* feat(parsing): add automatic layout detection contract

* feat(parsing): harden automatic layout detection

* fix(security): preserve scanner baseline positions
Bumps the github-actions group with 1 update: [dawidd6/action-send-mail](https://github.com/dawidd6/action-send-mail).


Updates `dawidd6/action-send-mail` from 3.12.0 to 18
- [Release notes](https://github.com/dawidd6/action-send-mail/releases)
- [Commits](dawidd6/action-send-mail@2cea961...94de994)

---
updated-dependencies:
- dependency-name: dawidd6/action-send-mail
  dependency-version: '18'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…rkspace com isolamento cross-workspace (#234)

- Modelo de dominio: FiscalUser, ExternalIdentity, FiscalWorkspace, WorkspaceMembership
- SqlIdentityWorkspaceStore: persistencia idempotente (UNIQUE constraint + retry em corrida)
- IdentityWorkspaceService: trava em processo + politica fail-closed
- TrustedIdentityMiddleware estendido (nao substituido) para os headers
  x-layoutparser-identity-{provider,subject,tenant}, mesma guarda de loopback
- WorkspacesController: GET /api/workspaces/me e GET /api/workspaces/{workspaceId}
  (404 uniforme para nao-existe/nao-e-seu, 401 explicito no /me sem identidade)
- Testes de isolamento cross-workspace, idempotencia sob concorrencia e
  subject-nunca-logado (issues #225/#228)

dotnet build e dotnet test (437/437) verdes.
@github-actions

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

OpenSSF Scorecard

PackageVersionScoreDetails
actions/dawidd6/action-send-mail 94de994a9f6fffee200243214e17002e2920bb59 🟢 4.1
Details
CheckScoreReason
Maintained🟢 1017 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Code-Review🟢 3Found 2/6 approved changesets -- score normalized to 3
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Packaging⚠️ -1packaging workflow not detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Binary-Artifacts🟢 10no binaries found in the repo
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Security-Policy⚠️ 0security policy file not detected
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
Fuzzing⚠️ 0project is not fuzzed
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
nuget/xunit.runner.visualstudio 4.0.0 UnknownUnknown

Scanned Files

  • .github/workflows/deploy.yml
  • ai/XslSynth.Core.Tests/XslSynth.Core.Tests.csproj


_logger.LogInformation(
"Seleção de layout da detecção automática. CorrelationId={CorrelationId} Status={DetectionStatus} SelectionSource={SelectionSource} LayoutGuid={LayoutGuid} Rank={Rank} AlgorithmVersion={AlgorithmVersion} CatalogVersion={CatalogVersion}",
correlationId,
}
catch (InvalidOperationException ex)
{
_logger.LogWarning(ex, "Detecção automática indisponível. CorrelationId={CorrelationId}", correlationId);
}
catch (Exception ex)
{
_logger.LogError(ex, "Falha inesperada na detecção automática. CorrelationId={CorrelationId}", correlationId);
// INSERT. Não é erro — relê o UserId que já existe (idempotência sob concorrência,
// critério de aceite #3 do contrato cross-repo).
await tx.RollbackAsync(cancellationToken);
_logger.LogInformation("Corrida de criação de identidade externa detectada (provider={Provider}); relendo UserId existente.", provider);
{
// Fail-closed: identidade externa não resolvida vira UserId null. O chamador (endpoint)
// nega acesso — nunca degrada para "segue sem filtro". Nunca logar subject.
_logger.LogWarning(ex, "Falha ao resolver identidade externa (provider={Provider}, tenant={Tenant}) — negando UserId (fail-closed).", provider, tenant);
{
// Fail-closed: identidade externa não resolvida vira UserId null. O chamador (endpoint)
// nega acesso — nunca degrada para "segue sem filtro". Nunca logar subject.
_logger.LogWarning(ex, "Falha ao resolver identidade externa (provider={Provider}, tenant={Tenant}) — negando UserId (fail-closed).", provider, tenant);
@elson-vinicius-lopes
elson-vinicius-lopes merged commit 5813591 into master Aug 31, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants