Skip to content

Releases: equinor/fusion-framework

@equinor/[email protected]

07 Nov 12:43
0e68713
Compare
Choose a tag to compare

Patch Changes

@equinor/[email protected]

07 Nov 12:43
0e68713
Compare
Choose a tag to compare

Patch Changes

  • #2520 248ee1f Thanks @eikeland! - ### Changes:
    • Updated the AppClient class to modify the query path in the fn method for fetching app manifests:
      • Changed the path from /apps/${appKey} to /persons/me/apps/${appKey}.

@equinor/[email protected]

07 Nov 12:43
0e68713
Compare
Choose a tag to compare

Patch Changes

@equinor/[email protected]

07 Nov 12:43
0e68713
Compare
Choose a tag to compare

Patch Changes

@equinor/[email protected]

06 Nov 12:14
0023e98
Compare
Choose a tag to compare

Patch Changes

  • #2528 ecc6bbb Thanks @eikeland! - #### Updated Files:

    • packages/react/legacy-interopt/src/create-fusion-context.ts
    • packages/react/legacy-interopt/src/create-service-resolver.ts

    Changes:

    1. create-fusion-context.ts

      • Added a call to authContainer.handleWindowCallbackAsync() before initializing TelemetryLogger.
    2. create-service-resolver.ts

      • Changed the third parameter of authContainer.registerAppAsync from false to true.

@equinor/[email protected]

06 Nov 12:14
0023e98
Compare
Choose a tag to compare

Patch Changes

@equinor/[email protected]

01 Nov 12:51
749f915
Compare
Choose a tag to compare

Patch Changes

  • #2524 1941b76 Thanks @odinr! - Fixed LegacyAuthContainer.registerAppAsync to not create duplicate AuthApps when additional resources are added to the app.

  • #2524 1941b76 Thanks @odinr! - Fixed createServiceResolver to extract app client id from each services.
    Previously we assumed that all services registered to the legacy auth container would use the same scope as all other services. This is not the case, as each service can have its own scope. This change allows us to extract the client id from the service definition, which is then used to create the service resolver.

    Resources are indexed by the client id, so when acquiring a resource, the legacy auth container will use the client id to generate an auth token. This token is then used to authenticate the request to the resource.

    NOTE: This will and should be deprecated in the future! This "bug" was discovered while an application used a mixed of legacy and new Framework, which caused the application to fail to authenticate requests to the resource (wrong audience).

@equinor/[email protected]

30 Oct 13:16
569a11b
Compare
Choose a tag to compare

Patch Changes

  • #2521 65f03fa Thanks @eikeland! - ### Adds CHANGELOG.md to app zip package

    • Removed individual file additions for package.json, LICENSE.md, and README.md.
    • Added a loop to handle multiple files (package.json, LICENSE.md, README.md, CHANGELOG.md) in a more concise manner.
    • Updated the spinner messages accordingly.

@equinor/[email protected]

17 Oct 07:48
ef9bc50
Compare
Choose a tag to compare

Patch Changes

  • #2517 e78861a Thanks @eikeland! - Make app.config.ts definition scopes optional by updating the AppConfigFn type to use z.input<typeof ApiAppConfigSchema>.

@equinor/[email protected]

15 Oct 11:00
c7fb888
Compare
Choose a tag to compare

Minor Changes

  • #2494 e11ad64 Thanks @odinr! - Adjusted module to the new app service API.

    [!WARNING]
    This will introduce breaking changes to the configuration of AppConfigurator.client.

    Added

    • Introduced AppClient class to handle application manifest and configuration queries.
    • Added zod to validate the application manifest.

    Changed

    • Updated AppModuleProvider to use AppClient for fetching application manifests and configurations.
    • Modified AppConfigurator to utilize AppClient for client configuration.
    • Updated useApps hook with new input parameter for filterByCurrentUser in fusion-framework-react.

    Migration

    before:

    configurator.setClient({
        getAppManifest: {
            client: {
                fn: ({ appKey }) => httpClient.json$<ApiApp>(`/apps/${appKey}`),
            },
            key: ({ appKey }) => appKey,
        },
        getAppManifests: {
            client: {
                fn: () => httpClient.json$<ApiApp[]>(`/apps`),
            },
            key: () => `all-apps`,
        },
        getAppConfig: {
            client: {
                fn: ({ appKey }) => httpClient.json$<ApiApp>(`/apps/${appKey}/config`),
            },
            key: ({ appKey }) => appKey,
        },
    });

    after:

    import { AppClient } from `@equinor/fusion-framework-module-app`;
    configurator.setClient(new AppClient());

    custom client implementation:

    import { AppClient } from `@equinor/fusion-framework-module-app`;
    class CustomAppClient implements IAppClient { ... }
    configurator.setClient(new CustomAppClient());