Skip to content

Latest commit

 

History

History
322 lines (225 loc) · 16.8 KB

CHANGELOG.md

File metadata and controls

322 lines (225 loc) · 16.8 KB

Apollo Workbench VSCode 3.3.12

  • [HotFix] Need to bundle @faker-js into extension

Apollo Workbench VSCode 3.3.11

  • Add changelog GitHub Action to ensure a changelog entry is there for every PR
  • Fix error locations for INVALID_GRAPHQL errors. Workebnch now tries to rebuild the source schema from the error and then uses the error.nodes.location for the VS Code diagnostic.
  • Fix a small edge case where a user could use a completion action to add Apollo Federation directives that updates the wrong editor. The correct schema is now displayed to the user and then updated.
  • Fix relative path references for files and operation viewer
  • When custom mocks fail to load, the error is now printed to the Apollo Workbench Output panel

Apollo Workbench VSCode 3.3.10

  • Fix apolloApiUrl setting to work with all rover commands. This is primarily for internal Apollo debugging purposes against pre-prod environments of GraphOS.

Apollo Workbench VSCode 3.3.9

  • Create graphRef setting - when using the play button to start a design locally, rover dev needs to pass a graph ref to an enterprise graph in GraphOS. This setting enables a user to set the name of their graph for the extension to work with.
  • Fix subgraph mock reload - dynamic urls introduced in 3.3.6 ended up breaking mocks because the supergraph composition was configured for the old ports. Rather than manage the router config, we simply store the subgraph port start so that it is dynamically created only on start. The created port is then re-used for all restarts of the subgraph mocks.

Apollo Workbench VSCode 3.3.8

  • Introduced auto upload to VS Code marketplace.

Apollo Workbench VSCode 3.3.6

  • Fix taken ports for subgraphs by setting port: 0
    • Temporary workbench file in .apollo-workbench folder contains dynamic subgraph_url
    • Mocked subgraph_url is printed to output window
  • Set APOLLO_ROVER_DEV_COMPOSITION_VERSION when federation_version is set to ={major}.{minor}.{patch} in config file
  • PR#175 - Thank you to @lleadbet
  • PR#173 - Thank you @dimaMachina
  • PR#152 - includes eslint package updates

Note - Versions 3.3.0-3.3.5 were skipped due to old release tokens no longer working

Apollo Workbench VSCode 3.2.12

  • Enable setting Router Version in VSCode settings routerVersion
  • Better support subgraph_url to load read-only schema
  • Create subgraph_url watcher to ping changes
    • Introduce settings enableSubgraphUrlWatcher and subgraphWatcherPingInterval to allow a user to disable/enable the watcher and set the interval the watcher pings subgraph_url for updates.
    • Any updates in the watcher will trigger refreshing composition for that design file

Apollo Workbench VSCode 3.2.11

  • Fix #168 - fix "openFolder" command. It needed to include "vscode.openFolder".
  • Fix #162 - operations with variabels in the design were being copied to the temporary wbfile used for composition
  • Fix start design from operation - auto-start rover dev and pretty print document into sandbox on open

Apollo Workbench VSCode 3.2.10

  • Forward all headers sent to the router to any mocked subgraph. All header values will be exposed on the context in resolvers to be accessed in custom mocks
  • Support apollo-workbench.routerConfigFile for a custom router configuration file to pass to rover dev
  • Hot fix for schema is undefined when starting up a design

Apollo Workbench VSCode 3.2.9

  • Addresses issue #164 - Custom mocks now supports simple resolvers. Default custom mocks now have a simple example of fetch with catFacts for any Product. __resolveReference for any entity can also be defined and this will override the custom generated resolver for the mocks.
  • Bundle @faker-js into custom mocks. Default custom mocks have example for Product.id
  • Hot reload mocks while rover dev is running

Apollo Workbench VSCode 3.2.8

  • Normalize paths so extension works on Windows - verified on Windows 11
  • Add prompts for missing rover installation, ELv2 prompt and config auth. Terminal windows are also created with the commands for the user.

Apollo Workbench VSCode 3.2.7

  • Fix bundling pre-loaded .graphql files into extension

Apollo Workbench VSCode 3.2.6

  • Rover commands now favor --profile vs using APOLLO_KEY. This can be set in apollo-workbench.roverConfigProfile of your VS Code settings.
  • Reintroduced "Example Designs" that users don't have to login to try out. They open in read only and are copied locally when you want to edit the files.
  • Resolving file paths has been centralized through utils.uri with a fix for relative path definitions.

Apollo Workbench VSCode 3.2.2

  • Fix rover dev when operations have argument variables present. We now use the sanitized config file process that we use for rover supergraph compose to strip the operations from the config file that is passed to rover dev.
  • Add GraphOS Signup and clarify login row for GraphOS view
  • Have schema design files created in a design folder. Without the folder, creating a subgraph with the same name as another schema.graphql file in the folder will overwrite the schema.
  • Fix mocks staying open on ports. rover dev sessions will be stopped before any attempted start
  • Enable command to refresh Apollo sandbox. We don't have a stable way to know when rover dev is actually finished, we just wait 5s (which should cover most scenarios).
  • Add RegEx to design file creations to prevent '#' from file names. We'll adjust the RegEx expression as issues arrise from usage

Apollo Workbench VSCode 3.2.1

  • Fix subgraph mocking and re-introduce custom mocks. Added supergraph config options:
schema:
  mocks:
    enabled: true
    customMocks: ./subgraph-mocks.js
  • Enable mocking by default for newly added subgraphs
  • Migrate to rover --format instead of output (deprecated)
  • Switching federation versions can be done directly in the file, or by clicking the version in Workbench
  • Multiple bug fixes

Apollo Workbench VSCode 3.2

  • Fix Converting circular structure to JSON --> starting at object with constructor 'B4' | property 'command' -> object with constructor 'Object' | property 'arguments' -> object with constructor 'Array' --- index 0 closes the circle error when clicking a graph in the "GRAPHOS SUPERGRAPHS" view to load operations
  • Fix Start graph locally with rover dev using the config file directly

Apollo Workbench VSCode 3.0

This release of Apollo Workbench

  • No more JSON blog in .apollo-workbench files - Workbench now uses the yaml file used by the Apollo Router
  • All @apollo/... libraries associated with Federation have been removed. Apollo Workbench now just uses rover.
    • Starting a design locally now uses rover dev and Apollo Explorer
      • Apollo Explorer is exposed inside extension - operation building and query plan viewing are in Explorer now.
  • Federation 2 support
    • Support for @link and all Federation directives with quick actions
  • Operations associated with designs support an associated image by a file pointer or https url

A number of breaking changes were made to simplify the workbench code base. Various functionality has begun to migrate to rover and with a smaller codebase, workbench will be more maintainable. If there are features missing that you previously used, please open an issue to start a community conversation around it being re-introduced .

Breaking Changes

  • Changed workbench design files from .apollo-workbench to the yaml file used by the Apollo Router for rover supergraph compose.

  • Remove Federation 1 support. Downgrade to Workbench 2.x to use Federation 1

  • Removed "export project" capabilities in favor of rover template features

  • Removed "mocking" capabilities in favor of rover dev feature

  • Removed export of resolvers because __resolveReference isn't always required with Federation 2

Apollo Workbench VSCode 2.0

  • Federation 2 Alpha support
  • Create a new Apollo Studio graph from a workbench design
  • Export project capabilities for any design

Apollo Workbench VSCode 1.1

  • Support multiple workbench design files with errors and context
  • Workbench file upgrades for feature work (backwards compatible)
  • Mocks engine overhaul
    • Upgrade to Apollo Server 3.0
    • Use Apollo Sandbox as default with auto-open url
      • Introduce setting apollo-workbench.openSandboxOnStartMocks to disable auto-open url
    • Upgrade to latest @apollo/gateway/federation/query-plan packages
    • UI feedback when starting up multiple mocked subgraphs (tested with 25 subgraphs)
  • Local files are now synced into Workbench. This means if you delete a workbench file in VS Code, then switch back to the workbench extension, the design file will no longer exist
    • This is how you delete a workbench file locally
  • Filtered output to have a better structure

Bug Fixes

  • Mocks don't work with schemas that define Apollo Federation Spec items (i.e. Query._service)
  • Wrong workbench file could be loaded due to different design subgraph schema being open while local tree refresh happens
  • Type completion for arrays printed incorrectly
  • Various

Apollo Workbench VSCode 1.0 - INITIAL RELEASE


Apollo Workbench VSCode 0.2.39

  • Added support for fowarding headers from Gateway to downstream services while mocked
    • Introduced apollo-workbench.headersToForwardFromGateway which takes an array of string values which will be used to copy header values from the Gateway's context to the requests sent to downstream services
    • This is meant to support various scenarios where downstream services require certain header values to be present

Bug Fixes

  • When starting up mocks and using a remote URL that can't be found, display the output results in VSCode Output Panel

Apollo Workbench VSCode 0.2.36

  • Introduced Service/Schema settings
    • Can view settings as a json file and save
      • Setting visualized from the workbench file
      • Introduced autoUpdateSchemaFromUrl to WorkbenchSchema
    • Context menu (right click) functionality points at workbench file directly
  • New mocking capabilities along with remote development options
    • Update schema from a given url
      • If Apollo Federation Spec is not supported (meaning query { _service { sdl } } fails), an introspection query will be used
    • Conditionally mock any service/schema defined in workbench
    • Ability to auto-update a given service/schema with mocks running
      • You may want to use this if are developing a service that must be started to provide it's schema (like Ruby or Kotlin). This would allow you to see changes as you develop that service in your mocked gateway running locally along with any composition errors in the problems panel
    • Added apollo-workbench.tlsRejectUnauthorized to the available settings to support gateway sending requests to remote urls where an cert is used that can't be verified. This allows you to specifically toggle process.env.NODE_TLS_REJECT_UNAUTHORIZED as needed; by default NODE_TLS_REJECT_UNAUTHORIZED=0
  • Changed menu options and ordering for Current Workbench Services
  • Changed name of TreeView from "Current Workbench Schemas" to "Current Workbench Services"

Apollo Workbench VSCode 0.2.8

  • Upgrade Visual Indicator for loading workbench files

Bugs

  • Usage of yield to unblock vscode extension ui thread from composeAndValidate 🎉

Apollo Workbench VSCode 0.2.7

  • Local development mocking toggle options implemented
    • Needs docs
    • Can have portions of graph point at specific urls, others mocked
      • Currently no auth/header options available
  • Provide visual indicators of what is going on during composition and loading of workbench file (large schemas can take a second to load)

Known bugs

  • composeAndValidate from @apollo/federation is blocking the vscode extension ui thread 🐛

Apollo Workbench VSCode 0.2.6

  • Support composite keys in intellisense 🎉

Bugs

  • CSDL file not refreshing properly. Moved to not use openTextDocument as VS Code pulls from a cache instead of consitently calling the FileProvier.readFile

Apollo Workbench VSCode 0.2.5

  • Added new icons
  • Pretty print operations

Bugs

  • Intellisense takes along time to load with large generated csdl
    • Excessive calls to getText in csdlParser removed

Apollo Workbench VSCode 0.2.3

Improvements:

  • General stability across basic functions:
    • Getting started
      • Streamlined creating new folder
      • Enter API key has feedback
    • Creating a workbench file from multiple sources
      • New (blank)
      • From Apollo Studio Graph
      • From Example Graph
    • Rename workbench files
    • Composition now updates CSDL visible if error
    • Studio graphs loading
      • Enable loading operations when clicking on any graph
      • Enable setting to change days for traces fetched from Apollo Studio
    • Studio Operations Viewing
      • Open edit-only view of graphql operations from Studio when clicking on a row in graph loaded operations

Apollo Workbench VSCode 0.2.2

  • Open any fodler

Apollo Workbench VSCode 0.2.1

  • Intellisense for writing queries

Apollo Workbench VSCode 0.2.0

Potential Breaking Changes

Extension now utilizes a file provider and workbench schema/query/queryplan files are no longer created in a .workbench folder. Any changes to a local schema file (that have not been synced to the workbench file) in previous extension versions will not update the workbench file. It is recommended to delete any .workbench files

Improvements:

  • Moved from chokidar to using a VSCode file provider
  • Added Getting Started section to local schema files tree, auto-preview markdown files for getting started
  • Mocks are no longer automatically started as they could linger in the background of a vscode window that had the extension opened at one point. Start/Stop commands have been introduced to toggle mocking

Known Bugs:

  • Intellisense does not currently recognize composite keys or multiple keys
  • Composition Errors sometimes don't point at the correct location in the document
  • Intellisense type completion is currently missing from writing operations, to be added back in shortly
  • Currently doesn't support opening workbench in a complex folder (i.e. a node project with a node_modules folder)

Apollo Workbench VSCode 0.1.3

Improvements:

  • Cache csdl parsing - was taking a long time to load for large schemas

Apollo Workbench VSCode 0.1.2

Improvements:

  • Add graphql-parser functions for reading available type/extension/scalar/enum/interface definitions when developing
  • Added better location/type mapping

Apollo Workbench VSCode 0.1.1

Improvements:

  • Hide .workbench folder and associated files into background
  • Introduce rename schema functionality
  • Introduce duplicate workbench file functionlity
  • Simplify context/menu items
    • Removed all buttons from schema/operaitons for currently loaded workbench (with the exception of opening query plan)
    • Centralized options to right click context items
    • Moved destructive actions to a new group to add line separtation
  • [MVP] - Added Completion Item provider for available type extensions from CSDL 🎉
    • Doesn't show extension options for what is defined in open service/schema file
      • Future improvement could be to provide these as options that just move the cursor to the given position
    • [BUG] Currently doesn't support composite keys
  • [MVP] - Added preloaded workbench example file

Apollo Workbench VSCode 0.1.0

Initial Beta Release

  • Apollo Studio Integration
    • Enter user API key to load accounts - must currently select 1 account at a time
      • No "switch account" button, have to logout and log back in
    • Load graphs and variants for a given account
    • Load gql operations for a given graph
    • Create workbench file from a given graph and graphVariant
    • Create gql operation in current workbench from Studio operation
  • Workbench
    • Mock schemas by running an AS instance for each schema defined in the workbench
      • Introduced shouldMock in the workbench file schemas for future support of pointing at prod/local urls to support scenarios like Kotlin GraphQL code first sdl
    • ApolloGateway extension where loadServiceDefinitions points at the workbench file to compose
    • Composition errors are logged to vscode.Diagnostics in Problems panel
    • Query plan generation using Rust wasm can be viewed for any opertion with a composed graph