Skip to content

JNY-PFM-CSH-003Open a shared record link and retain its context

Markdown

JNY-PFM-CSH-003

Open a shared record link and retain its context

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationObserved

KindJourneyProduct areaPlatformModuleConsole Shell and NavigationRevision2End-to-endRequired

Read atreact-console baf6dae3services-platform ad3f6a65

The Formal Contract

The narrative above explains; the sections below are authoritative — the rules, scenarios and tests this document binds.

Goal
Reach a colleague’s shared record, signing in if necessary, and preserve the destination through subsequent browser navigation.
Screens
/console/{tenantId}/crm/contacts/{contactId}/login

Steps

#SurfaceActionCapabilityExpectedProvenance
1/console/{tenantId}/crm/contacts/{contactId}Follows a contact link containing query information while signed out.CAP-PFM-CSH-009The sign-in experience begins.documented
2getMySecurityContextSigns in and waits for access to the workspace requested by the link.CAP-PFM-CSH-010The URL-entry request names the requested workspace explicitly.observed
3/console/{tenantId}/crm/contacts/{contactId}Completes entry to the requested contact.CAP-PFM-CSH-009The intended workspace, contact and query information remain the destination.documented
4/console/{tenantId}/crm/contacts/{contactId}Reloads the record page.CAP-PFM-CSH-009The same workspace record remains open.test
react-console:e2e/mock/url-architecture.mock.spec.ts#a record deep link survives a reload
5/console/{tenantId}/crm/contactsOpens the contacts list and then uses browser history.CAP-PFM-CSH-009History restores the earlier contact and list destinations.documented

Alternate and Failure Paths

PathFrom stepConditionPath takenOutcomeProvenance
alternate1The colleague sent a link using the earlier address scheme.Compatibility handling places it in the remembered workspace.The record identifier and query information survive the redirect.test
react-console:e2e/mock/url-architecture.mock.spec.ts#an old tenant-less URL lands on its canonical URL, id and query kept
alternate2A cleared Rhythm staff member follows the workspace link.The staff session enters the requested workspace directly.The requested contact becomes the working destination.documented
react-console:docs/url-architecture.md#11. Decisions made during the build
failure2The link names an unknown workspace.The workspace entry response presents not found.The requested workspace page remains unopened.test
react-console:e2e/mock/url-architecture.mock.spec.ts#an id no tenant has shows not found
failure2The person cannot reach the named workspace.The console explains the refusal and offers a reachable return context.The requested workspace is not entered.observed
react-console:components/console/tenant-id-gate.tsx:TenantIdGate, deniedReturnTenant
failure2The staff member has no clearance for the requested workspace.Rhythm HQ opens with an explanatory notice.The console does not start an emergency-access dialog.test
react-console:e2e/controlled/staff-deep-link.controlled.spec.ts#an uncleared staff member's deep link goes to Rhythm HQ with a notice, not the emergency-access dialog
failure3The linked work is in an application unavailable to the organization.The page body explains product unavailability.Home and application-list destinations provide ways onward.test
react-console:e2e/mock/application-access.mock.spec.ts#a deep link into one of them says the application isn't available

Assertions

IdStatementProvenance
01Sign-in can restore the page and query requested by a direct link.test
react-console:e2e/dev/url-architecture.dev.spec.ts#a signed-out deep link goes through sign-in and comes back to the same page and query
02Reload preserves the workspace record destination.test
react-console:e2e/mock/url-architecture.mock.spec.ts#a record deep link survives a reload
03An unknown workspace identity produces a not-found response.test
react-console:e2e/mock/url-architecture.mock.spec.ts#an id no tenant has shows not found
04Compatibility handling retains the old link’s record identity and query.test
react-console:e2e/mock/url-architecture.mock.spec.ts#an old tenant-less URL lands on its canonical URL, id and query kept

End-to-end policy: required: Sign-in return, workspace entry and browser history require browser evidence. Current bindings cover specific destinations; a contact-specific sign-in and history journey still needs direct proof.

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.