Stellate Product Updates logo
Back to Homepage Subscribe to Updates

Product Updates

See the latest new features, improvements, and product updates

Labels

  • All Posts
  • Fix
  • Announcement
  • Improvement
  • graph api
  • feature

Jump to Month

  • December 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • January 2023
  • September 2022
  • August 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
FixAnnouncementImprovement
2 years ago

Launch week

Last week, we announced five new major features! Let’s recap.

A whole new dashboard

You gave us the feedback, we listened! We shipped a whole new dashboard with new metrics, purging history and much more. Check it out at stellate.co/app

New GraphQL Metrics

With the new dashboard, we released brand-new GraphQL Metrics that allow you to slice and dice aggregate traffic data, understand individual requests in full context, and monitor performance and errors.

Purging Analytics

The new purging analytics allow you to have full visibility into your cache's activity, which allows you to optimize your cache hit rate and have the confidence that no stale data is served to your users.

New GraphiQL integration

We integrated a GraphQL IDE into our new dashboard to allow users to test queries against their API quickly. The IDE is based on the upcoming new version of GraphiQL, which is more extensible and customizable.

Universal Configuration-As-Code

The new Stellate dashboard includes a code editor for "universal configuration-as-code." This allows for better knowledge transfer between UI and terminal, instant feature parity and faster shipping, and DRY code reuse across environments. We are exploring ways to further utilize UI to enhance the experience with the new TypeScript-based configuration.

Since then, we got a lot of great feedback and worked on the following fixes:

Changes

  • Introduce pagination for the Service History
  • Show config diff in --dry command

Fixes

  • Fix the chat bubble in the dashboard
  • Fix the top navigation moving and shifting when activating different items
  • Fix tracking the PASS response state and visualizing it in GraphiQL
  • More robust config validation in the UI
  • Improve dashboard UX by adding stand-in values for the navigation
  • Fix submitting the query depth limit
  • Replace @monaco-editor/react with our own implementation, which increases the reliability and performance of the code editor in the dashboard
Avatar of authorTim Suchanek
Announcement
2 years ago

National Pizza Party Day Release

Today is National Pizza Party Day, and we have a couple of improvements to release.

New

* Cloudflares CF-IPCountry header is now getting passed through to backend services. Since we are using Cloudflare as well, some headers usually set by Cloudflare will get overwritten with GraphCDN-specific values. If you run Cloudflare in front of GraphCDN and need access to those headers, let us know and we'll take a look if/how we can pass through the original values.

* GraphCDN joined Stripes Climate program and donates 1% of our revenue to carbon removal. See https://climate.stripe.com/wMbSdD for more information

Fixed

* Weekly Digest emails sometimes got stuck/congested. We fixed that bug and those digests are now getting delivered reliably.

The release included further under-the-hood improvements and preparations for soon-to-be-launched features. Stay tuned for those, you are going to 😍 them.

Avatar of authorMarko Locher
Announcement
2 years ago

Wordpress GraphCDN Plugin

We're excited to announce a new Wordpress plugin that makes using GraphCDN with WPGraphQL a breeze.

The plugin takes care of invalidating the cache for any entities you update in your Wordpress installation, works with custom post types as well as taxonomies and allows you to focus on your content and not worry about your GraphCDN setup.

See https://docs.graphcdn.io/docs/graphcdn-wordpress-plugin for more information, as well as installation instructions. And don't hesitate to reach out via support@graphcdn.io or the in-app messenger if you have any questions at all.

Avatar of authorMarko Locher
Announcement
3 years ago

Breaking Change Detection

We're happy to release the new graphcdn check CLI subcommand.

Based on the analytics data GraphCDN collects for your service, we check that any breaking changes you make to your GraphQL API will not affect your users. See https://graphcdn.io/blog/announcing-graphcdn-check for the announcement blog post and https://docs.graphcdn.io/docs/cli#check for the documentation.

The next step? Opening a PR on your CI/CD workflow to call graphcdn check as part of your pipelines.

Avatar of authorMarko Locher
FixAnnouncementImprovement
3 years ago

Lisbon On-site Improvements

The GraphCDN team spent the last week in Lisbon, Portugal at an amazing onsite. (Since we are a distributed company, we're actually "on-site" when we're all together. 😊) Other than getting to know each one of us better, and working hard on the vision and mission for our company, we also shipped some improvements, fixes, and new features.

FRRCLaXXsAEhR2_

New

  • We have a new field called servicesList on the organization type, which allows you to paginate/filter through all services owned by an organization. This implements the relay-pagination spec.
  • POST requests with an empty body are now blocked at the edge.

Improved

  • The Forwarded headers are now appended rather than replaced
  • Requests are retried at most once to not overload your backend services.

Fixed

  • We have fixed the Slack channel selector, which was not working for Slack workspaces with more than 1000 channels. We will now load all non-archived channels when loading the page. Unfortunately Slack does not implement filtering via their API 😅, which makes our UI and background logic a slight bit more complicated.
  • We now make a better attempt at removing the TLS subscription when removing a custom domain from your service.
  • We have fixed an issue where we would cache empty array root-fields
Avatar of authorMarko Locher
FixAnnouncement
3 years ago

April Updates

New

  • Set Forwarded and X-Forwarded-For headers via GraphCDN edge workers.
  • The GraphCDN CLI serve command now exposes a Purging API in addition to your cached GraphQL API in version 1.11.0
  • Added a list of 3rd party subprocessors that GraphCDN uses at https://graphcdn.io/subprocessors.pdf

Fixed

  • [Private Beta] If GraphCDN encounters an invalid JWT, requests will be passed on to your backend service instead of being treated like an unscoped request.

We are also working on a new version of our dashboard and shipped some internal improvements and prerequisites for that. See https://twitter.com/mxstbr/status/1516784404777123851 for a sneak peek.

Avatar of authorMarko Locher
Announcement
3 years ago

Purge by query root fields

If you want to purge specific results based on fields and arguments passed to your queries, you can use the _purgeQueryField(fields: [QueryFieldInput!]!) mutation.

The QueryFieldInput argument will be an enum based on your schema if you pushed your schema to GraphCDN (or have introspection enabled), or a string if GraphCDN doesn't have access to your schema.

As an example, let's say you have the following query as part of your application:

{
  package(name: "@urql/core") {
    __typname
    name
  }
}

You can then target the package field and purge the above result with the following mutation.

mutation {
  _purgeQueryField(fields: [
    {
      name: "package",
      args: { name: "@urql/core" }
    }
  ])
}

If you pushed your schema to GraphCDN, you could also use more specific mutations based on your schema definition. For example, you would also be able to use the following mutation.

mutation {
  purgeQuery_package(args: [{ name: "@urql/core }])
}

And you can, of course, pass in those arguments via variables as well.

Avatar of authorMarko Locher
Improvement
3 years ago

Increased Cache Limits

Up to now, GraphCDN could cache GraphQL responses up to 2MB in size. If the response size was larger than this, the response could not be stored in the cache, and any future requests would be passed on to your backend service.

We are happy to announce that we could bump this limit and can now cache responses up to 10MB in size.

Avatar of authorMarko Locher
Announcement
3 years ago

Define headers to bypass the GraphCDN edge cache

You can now define a set of request headers that will cause GraphCDN to bypass the cache and pass the request on to your origin. Any request you send that includes one of those headers (e.g. a x-preview-token header with any value) will not be cached.

You will see a new option called Bypass Headers in the cache configuration on your service dashboard.


However, you can also specify those headers via the graphcdn.yml in a new bypassCacheHeaders section.

name: my-app
schema: https://end.point
originUrl: https://end.point
bypassCacheHeaders:
    - name: x-preview-token
    - name: some-other-token
...

Common use cases for this feature are preview modes for e.g. a headless CMS or specific queries where you always want to get the latest data.

See https://docs.graphcdn.io/docs/bypass-headers for our documentation of this feature.

Avatar of authorMarko Locher
Announcement
3 years ago

Double your free requests with the brand-new "Powered by GraphCDN" badge

If you have this shiny "Powered by GraphCDN" badge in the footer of your website, we'll double your free monthly requests to 10M!

Copy-and-paste this HTML code into your website's footer, email us a link, and we'll unlock the extended free plan for you:


  Powered by GraphCDN
Avatar of authorMarko Locher