Vue Storefront is now Alokai! Learn More
Configuration files

Configuration files

Configuration of your instance application, both the front application and the API application, is managed (merged) by module node-config.

For both instances, we crate file local-cloud.json which overrides your default configuration. We do it because some parts of your instance configuration in a cloud environment should be constant, e.g., Redis host, ElasticSerach host, API host and API endpoints. The file is named local-cloud.json because the patter for the name is local-{deployment}.EXT, and we set {deployment} by environment variable $NODE_CONFIG_ENV to cloud. To better understand how the name of files should be created and what is the order of merging configuration please read the module documentation

Our local-cloud.json

The default template for the front application, file local-cloud.json is below.

    {
      "server": {
        "dynamicConfigReload": true,
        "dynamicConfigInclude": [
          "redis",
          "elasticsearch",
          "graphql",
          "cart",
          "products",
          "reviews",
          "orders",
          "users",
          "stock",
          "mailchimp",
          "mailer"
        ]
      },
      "redis": {
        "host": "redis"
      },
      "api": {
        "url": "https://[[your_domain]]"
      },
      "elasticsearch": {
        "host": "/api/catalog"
      },
      "graphql": {
        "host": "https://[[your_domain]]/graphql"
      },
      "cart": {
        "create_endpoint": "https://[[your_domain]]/api/cart/create?token={{ "{{" }}token{{ "}}" }}",
        "updateitem_endpoint": "https://[[your_domain]]/api/cart/update?token={{ "{{" }}token}}&cartId={{ "{{" }}cartId{{ "}}" }}",
        "deleteitem_endpoint": "https://[[your_domain]]/api/cart/delete?token={{ "{{" }}token}}&cartId={{ "{{" }}cartId{{ "}}" }}",
        "pull_endpoint": "https://[[your_domain]]/api/cart/pull?token={{ "{{" }}token}}&cartId={{ "{{" }}cartId{{ "}}" }}",
        "totals_endpoint": "https://[[your_domain]]/api/cart/totals?token={{ "{{" }}token}}&cartId={{ "{{" }}cartId{{ "}}" }}",
        "paymentmethods_endpoint": "https://[[your_domain]]/api/cart/payment-methods?token={{ "{{" }}token}}&cartId={{ "{{" }}cartId{{ "}}" }}",
        "shippingmethods_endpoint": "https://[[your_domain]]/api/cart/shipping-methods?token={{ "{{" }}token}}&cartId={{ "{{" }}cartId{{ "}}" }}",
        "shippinginfo_endpoint": "https://[[your_domain]]/api/cart/shipping-information?token={{ "{{" }}token}}&cartId={{ "{{" }}cartId{{ "}}" }}",
        "collecttotals_endpoint": "https://[[your_domain]]/api/cart/collect-totals?token={{ "{{" }}token}}&cartId={{ "{{" }}cartId{{ "}}" }}",
        "deletecoupon_endpoint": "https://[[your_domain]]/api/cart/delete-coupon?token={{ "{{" }}token}}&cartId={{ "{{" }}cartId{{ "}}" }}",
        "applycoupon_endpoint": "https://[[your_domain]]/api/cart/apply-coupon?token={{ "{{" }}token}}&cartId={{ "{{" }}cartId}}&coupon={{ "{{" }}coupon{{ "}}" }}"
      },
      "products": {
        "endpoint": "https://[[your_domain]]/api/product"
      },
      "reviews": {
        "create_endpoint": "https://[[your_domain]]/api/review/create"
      },
      "orders": {
        "endpoint": "https://[[your_domain]]/api/order"
      },
      "users": {
        "endpoint": "https://[[your_domain]]/api/user",
        "history_endpoint": "https://[[your_domain]]/api/user/order-history?token={{ "{{" }}token{{ "}}" }}",
        "resetPassword_endpoint": "https://[[your_domain]]/api/user/resetPassword",
        "changePassword_endpoint": "https://[[your_domain]]/api/user/changePassword?token={{ "{{" }}token{{ "}}" }}",
        "login_endpoint": "https://[[your_domain]]/api/user/login",
        "create_endpoint": "https://[[your_domain]]/api/user/create",
        "me_endpoint": "https://[[your_domain]]/api/user/me?token={{ "{{" }}token{{ "}}" }}",
        "refresh_endpoint": "https://[[your_domain]]/api/user/refresh"
      },
      "stock": {
        "endpoint": "https://[[your_domain]]/api/stock"
      },
      "mailchimp": {
        "endpoint": "https://[[your_domain]]/api/ext/mailchimp-subscribe/subscribe"
      },
      "mailer": {
        "endpoint": {
          "send": "https://[[your_domain]]/api/ext/mail-service/send-email",
          "token": "https://[[your_domain]]/api/ext/mail-service/get-token"
        }
      }
    }

By default template for API application file local-cloud.json is an empty JSON {}.

For both files, the configuration can change. Always, the config file for your instance is available in pods. You can check it using CLI tool or directly using kubeconfig.

Overreading configuration

If for some reason, the default configuration is not sufficient for you, you can override it by file create according to the pattern local- {deployment} - {instance} .EXT. {deployment} value is always cloud. Default value of {instance} is prod. In case when you have more than one instance it can be stage or test. You can check it by running command echo $ NODE_APP_INSTANCE on the pods of your instance.