Skip to content

feat: "Managed by" column and filter, created by out of the tables - #214

Open
edospadoni wants to merge 39 commits into
mainfrom
feat/managed-by-parent-company
Open

edospadoni wants to merge 39 commits into
mainfrom
feat/managed-by-parent-company

Conversation

@edospadoni

@edospadoni edospadoni commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

Preview

What

  • Backend: parent_organization_id ("Managed by") on /systems and /applications (+ export): the organization and its whole subtree, ANDed with organization_id; for applications an unassigned one counts with the company of its system
  • Backend: organization.parent (direct parent) on the systems list and detail
  • Frontend: "Managed by" column and filter on Systems, Customers, Resellers; filter only on Applications; shown by level (Owner everywhere, distributor on customer-level rows)
  • The counters of reseller/distributor pages open the lists filtered by Managed by, same totals as the counters; the hierarchy banner is gone
  • "Created by" out of the tables (column, sort, filter), still on the detail pages
  • Systems and Applications: "Company" → "Assigned company"
  • Various UI fixes and improvements

Why

  • Assigned company = where it is, Managed by = the subtree it sits in (custom_data.createdBy), Created by = audit snapshot. The creator's organization differs from the parent in about 2 systems out of 3.

Checks

  • make test-authz green (3381); Managed by scope checked on 7 personas × 40 orgs, list ⊆ unfiltered and CSV rows = list

@edospadoni
edospadoni temporarily deployed to feat/managed-by-parent-company - my-backend-qa PR #214 September 30, 2026 12:42 — with Render Destroyed
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 September 30, 2026 12:42 — with Render Active
@github-actions

Copy link
Copy Markdown
Contributor

🔗 Redirect URIs Added to Logto

The following redirect URIs have been automatically added to the Logto application configuration:

Redirect URIs:

  • https://my-proxy-qa-pr-214.onrender.com/login-redirect

Post-logout redirect URIs:

  • https://my-proxy-qa-pr-214.onrender.com/login

These will be automatically removed when the PR is closed or merged.

@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

🤖 my.nethesis.it API structural change detected

Preview documentation

Structural change details

Modified (10)

  • GET /alerts
    • Response modified: 200
      • Content type modified: application/json
        • Property modified: data
          • Property modified: alerts
    • Query parameters added: silenced, has_notes
  • GET /applications
    • Query parameter added: parent_organization_id
  • GET /applications/export
    • Query parameter added: parent_organization_id
  • GET /systems
    • Response modified: 200
      • Content type modified: application/json
        • Property modified: data
          • Property modified: systems
    • Query parameter added: parent_organization_id
  • GET /systems/export
    • Query parameter added: parent_organization_id
  • GET /systems/{id}
    • Response modified: 200
      • Content type modified: application/json
        • Property modified: data
          • Property modified: organization
  • GET /systems/{id}/alerts
    • Response modified: 200
      • Content type modified: application/json
        • Property modified: data
          • Property modified: alerts
    • Query parameters added: silenced, has_notes
    • Response added: 400
  • POST /systems
    • Response modified: 201
      • Content type modified: application/json
        • Property modified: data
          • Property modified: organization
  • POST /systems/{id}/regenerate-secret
    • Response modified: 200
      • Content type modified: application/json
        • Property modified: data
          • Property modified: organization
  • PUT /systems/{id}
    • Response modified: 200
      • Content type modified: application/json
        • Property modified: data
          • Property modified: organization
Powered by Bump.sh

@edospadoni

Copy link
Copy Markdown
Member Author

update deploy

@github-actions

Copy link
Copy Markdown
Contributor

🚀 Build triggers updated!

All .render-build-trigger files have been automatically updated to ensure fresh deployments of all services in the PR preview environment.

@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 September 30, 2026 12:43 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-backend-qa PR #214 September 30, 2026 12:43 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-collect-qa PR #214 September 30, 2026 12:43 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 September 30, 2026 12:53 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 September 30, 2026 15:22 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 September 30, 2026 15:41 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 September 30, 2026 15:47 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 September 30, 2026 16:21 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-backend-qa PR #214 September 30, 2026 16:21 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 October 1, 2026 06:00 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-backend-qa PR #214 October 1, 2026 06:01 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-collect-qa PR #214 October 1, 2026 06:01 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 October 1, 2026 07:09 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 October 1, 2026 09:33 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-backend-qa PR #214 October 1, 2026 10:15 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-mimir-qa PR #214 October 1, 2026 10:15 — with Render Active
edospadoni and others added 6 commits October 1, 2026 12:18
parent_organization_id keeps the rows whose organization sits directly
under one of the given companies (custom_data.createdBy), ANDed with
organization_id. The systems and users lists and the system detail
carry organization.parent, resolved in one query per page.
A "Managed by" filter and column sit before the company on systems,
users, customers and resellers, shown only to the levels for which it
can be someone other than themselves. Created by leaves the tables
(column, sort and filter) and stays on the detail pages; the systems
company becomes "Assigned company".
Auto-updated .render-build-trigger files to ensure all services
are deployed in PR preview environments.

🤖 Generated by GitHub Actions
On systems and users the "Managed by" column and filter now follow the
company they refer to; on customers and resellers they sit just before
the status, after the counts. In the system detail the row follows the
assigned company. The counter labels lose their "Total" prefix, in
English and Italian alike.

Assisted-by: Claude Code:Opus 5.5 (1M context)
Distributor and reseller details already count systems and applications
across the whole hierarchy, so the cards listing the company's own ones
repeated them under a near-identical title. They stay on the customer
detail, where the company is the whole hierarchy, titled plainly
"Systems" and "Applications". The two queries that only fed those cards
go with them.

Assisted-by: Claude Code:Opus 5.5 (1M context)
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 October 2, 2026 14:20 — with Render Active
Users who never logged in show a "No login" badge beside their name and
email, styled like the muted alert badge.

Assisted-by: Claude Code:Opus 5.5
The muted and processing badges next to an alert name are centered on
the name and summary block instead of aligned to its top.

Assisted-by: Claude Code:Opus 5.5
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 October 2, 2026 14:39 — with Render Active
The assignee name and organization wrap instead of being truncated, so a
long organization name no longer widens the "Assigned to" column past
the table edge.

Assisted-by: Claude Code:Opus 5.5
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 October 2, 2026 15:28 — with Render Active
Table cells wrap long text at spaces and only split a word that does not
fit on its own line, instead of truncating it or breaking any word at
any letter:

- the add-on description in the catalog table is no longer truncated,
  so it no longer widens its column
- alert summaries, system versions and addresses, application versions,
  user emails and the import preview fields use wrap-anywhere instead
  of break-all, which split words like "certificate" mid-word
- system and organization names wrap, so a long name without spaces no
  longer sets the width of its column

Assisted-by: Claude Code:Opus 5.5
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 October 2, 2026 15:42 — with Render Active
A long alert summary wraps within 20rem instead of taking most of the
table width, so the system and company names next to it stay on one
line when there is room for them.

Assisted-by: Claude Code:Opus 5.5
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 October 2, 2026 15:49 — with Render Active
The processing and muted badges sit beside the alert name in the alerts
tables, in the xs size, instead of after the name and summary block.
The processing badge takes a size, so the details drawer keeps its
regular one.

Assisted-by: Claude Code:Opus 5.5
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 October 2, 2026 15:58 — with Render Active
The comments icon in the alert cell lines up with the alert name and its
badges instead of being centered on the name and summary block.

Assisted-by: Claude Code:Opus 5.5
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 October 2, 2026 16:00 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-mimir-qa PR #214 October 2, 2026 16:02 — with Render Active
The "No login" badge sits beside the user name in the users table, in
the xs size and without an icon, instead of after the name and email
block.

Assisted-by: Claude Code:Opus 5.5
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 October 2, 2026 16:21 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 October 5, 2026 06:00 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-backend-qa PR #214 October 5, 2026 06:00 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-collect-qa PR #214 October 5, 2026 06:00 — with Render Active
sort_by now takes the counters the tables show, from the table header
and the sort dropdown: resellers_count, customers_count and
systems_count for distributors, customers_count and systems_count for
resellers, systems_count for customers. Rows with the same count fall
back to their name, so OFFSET paging stays stable.

Resellers and customers sort on the same subqueries that select their
counters, so the sort works whether or not include_counts is set.
Distributor counters are folded in Go after LIMIT, so a counter sort
joins one grouped query that counts every distributor at once, instead
of a correlated subquery that would rescan systems per row.

Assisted-by: Claude Code:Opus 5.5
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-backend-qa PR #214 October 5, 2026 07:32 — with Render Active
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 October 5, 2026 07:32 — with Render Active
A menu next to the theme toggle sets the UI density: standard, compact
or dense. Small screens with OS scaling, such as 1920x1080 at 150%,
leave a 1280x600 viewport where few table rows fit; the tighter
densities give them more room.

Compact and dense lower the Tailwind --spacing variable, so margins,
paddings and sizes shrink while font sizes stay the same. The choice is
saved per user, like the theme.

Assisted-by: Claude Code:Opus 5.5
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 October 5, 2026 12:47 — with Render Active
The help link in the top bar holds only an icon, so screen readers
announced it as a bare link. A visually hidden "Help" label names it,
like the other top bar buttons.

Assisted-by: Claude Code:Opus 5.5
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 October 5, 2026 13:02 — with Render Active
The density menu becomes a toggle between standard and compact, next to
the theme toggle. The dense option is gone: compact alone gives small
screens enough room.

Assisted-by: Claude Code:Opus 5.5
@edospadoni
edospadoni deployed to feat/managed-by-parent-company - my-frontend-qa PR #214 October 5, 2026 15:34 — with Render Active

This branch was successfully deployed

5 active (4 outdated) deployments
feat/managed-by-parent-company - my-frontend-qa PR #214 — 322f2be1 Deployed Oct 5, 2026 by edospadoni
feat/managed-by-parent-company - my-backend-qa PR #214 — f0a51056 Deployed Oct 5, 2026 by edospadoni
feat/managed-by-parent-company - my-collect-qa PR #214 — 5beb177f Deployed Oct 5, 2026 by edospadoni
feat/managed-by-parent-company - my-proxy-qa PR #214 — 5beb177f Deployed Oct 5, 2026 by edospadoni
feat/managed-by-parent-company - my-mimir-qa PR #214 — ed9eb677 Deployed Oct 2, 2026 by edospadoni
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