-
Notifications
You must be signed in to change notification settings - Fork 130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add some non gated app config specs #3170
Conversation
We detected some changes at either packages/*/src or packages/cli-kit/assets/cli-ruby/** and there are no updates in the .changeset. |
3ad22b8
to
7e4931b
Compare
175cf11
to
9de847c
Compare
7e4931b
to
23ca82a
Compare
Coverage report
Show new covered files 🐣
Show files with reduced coverage 🔻
Test suite run success1527 tests passing in 690 suites. Report generated by 🧪jest coverage report action from 82bdf70 |
9de847c
to
0be1d9b
Compare
23ca82a
to
167838e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work! Again, all the suggestions are minor and we can tackle them later if you prefer.
The only thing that didn't work as expected was the privacy_compliance webhooks, should it work? Is the server branch ready to handle it? I got all the fields after running link, except that one.
packages/app/src/cli/models/extensions/specifications/app_config_app_proxy.test.ts
Show resolved
Hide resolved
packages/app/src/cli/models/extensions/specifications/app_config_pos_configuration.ts
Outdated
Show resolved
Hide resolved
packages/app/src/cli/models/extensions/specifications/app_config_privacy_compliance_webhooks.ts
Outdated
Show resolved
Hide resolved
0be1d9b
to
eff54f5
Compare
167838e
to
af077b0
Compare
e431a1f
to
ce3f4f5
Compare
34e413b
to
82bdf70
Compare
Differences in type declarationsWe detected differences in the type declarations generated by Typescript for this branch compared to the baseline ('main' branch). Please, review them to ensure they are backward-compatible. Here are some important things to keep in mind:
New type declarationsWe found no new type declarations in this PR Existing type declarationspackages/cli-kit/dist/private/node/constants.d.ts@@ -28,6 +28,7 @@ export declare const environmentVariables: {
identityToken: string;
refreshToken: string;
otelURL: string;
+ versionedAppConfig: string;
};
export declare const systemEnvironmentVariables: {
backendPort: string;
packages/cli-kit/dist/public/common/object.d.ts@@ -45,4 +45,21 @@ export declare function deepCompare(one: object, two: object): boolean;
* @param two - The second object to be compared.
* @returns Two objects containing the fields that are different, each one with the values of one object.
*/
-export declare function deepDifference(one: object, two: object): [object, object];
\ No newline at end of file
+export declare function deepDifference(one: object, two: object): [object, object];
+/**
+ * Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
+ *
+ * @param object - The object to query.
+ * @param path - The path of the property to get.
+ * @returns - Returns the resolved value.
+ */
+export declare function getPathValue<T = object>(object: object, path: string): T | undefined;
+/**
+ * Sets the value at path of object. If a portion of path doesn't exist, it's create.
+ *
+ * @param object - The object to modify.
+ * @param path - The path of the property to set.
+ * @param value - The value to set.
+ * @returns - Returns object.
+ */
+export declare function setPathValue(object: object, path: string, value?: unknown): object;
\ No newline at end of file
packages/cli-kit/dist/public/common/version.d.ts@@ -1 +1 @@
-export declare const CLI_KIT_VERSION = "3.52.0";
\ No newline at end of file
+export declare const CLI_KIT_VERSION = "3.51.0";
\ No newline at end of file
packages/cli-kit/dist/public/node/context/local.d.ts@@ -170,4 +170,11 @@ export declare function macAddress(): Promise<string>;
* @returns The domain to send OTEL metrics to.
*/
export declare function opentelemetryDomain(env?: NodeJS.ProcessEnv): string | undefined;
-export type CIMetadata = Metadata;
\ No newline at end of file
+export type CIMetadata = Metadata;
+/**
+ * Returns true if configuration extensions are enabled.
+ *
+ * @param env - Environment variables used when the cli is launched.
+ * @returns True if SHOPIFY_CLI_VERSIONED_APP_CONFIG is truthy.
+ */
+export declare function useVersionedAppConfig(env?: NodeJS.ProcessEnv): boolean;
\ No newline at end of file
|
WHY are these changes introduced?
Follow-up: #3161
NOTES:
main
before merging the follow-upWHAT is this pull request doing?
configuration
specs that are not gated (app access
,declarative webhooks
)app_home
app_proxy
declarative configuration
to transforma the extension configuration content to send it/receive from the server.undefined
fields won't be mappedapp_home
spec format is different in the toml than in the backendconfiguration
extensions if they have some content (ie add a config section without any field inside because they are optional). This means that the extension wont be neither created in this case if it does not exists nor updated otherwiseHow to test your changes?
cli
app and run theapp config link
command to link it to a new remote app.shopify.app.toml
file and modify some value from:SHOPIFY_CLI_VERSIONED_APP_CONFIG=1 npm run shopify app deploy --path /PATH/TO/YOUR/APP
command to release a new version.shopify.app.toml
file again modify some of the previous valuesnpm run shopify app config link --path /PATH/TO/YOUR/APP
command. The values should be overwritten with the released ones. This means that it's fetching the content from the extension registration, as we haven't run the commandapp config push
to update the contentPost-release steps
Measuring impact
How do we know this change was effective? Please choose one:
Checklist
dev
ordeploy
have been reflected in the internal flowchart.