Skip to content

Latest commit

 

History

History
209 lines (158 loc) · 9.21 KB

CHANGELOG.md

File metadata and controls

209 lines (158 loc) · 9.21 KB

2.4.1

  • Fix handling of proposal details between spec versions 2003 and 2004

2.4.0

  • Bump @joystream/types to Petra version

2.2.1

  • Bump deps @polkadot/api v10.7.1

2.1.0

  • Bump polkadot-js/api version bump, use newer hydra-typegen version
  • Fixes in mappings, when checking runtime version to pick correct event type

2.0.0

  • Add support for Nara release - CRTs, freeze pallet proposal, new chain metadata spec

1.9.0

  • Add isShort field to Video entity. and updated mappings to process/set this filed

1.8.2

  • Fix validator profile verification - #5061

1.8.0

  • Add support for validator profile verification - #4976

1.7.0

  • Refactor of mappings for more better handling of error cases. #4856
  • Bug fix #4855
  • Add support for UpdateGlobalNftLimit proposal.

1.6.0

  • Store membership handles both as utf-8 string and raw bytes - #4950

1.5.0

  • Add add linked-in to membership external resource #4927
  • Schema updated, processor needs to be re-synced.

1.4.0

  • Adds StorageBag.objectsSize field to StorageBag entity schema. This enables to query the total size of all objects in a storage bag. #4818
  • Add Validator profile #4849,#4868
  • Schema updated, processor needs to be resynced.

1.3.0

  • Fix external resources mapping of membership metadata to ignore unrecognized type. #4838

1.2.2

  • Integrates OpenTelemetry API/SDK with Query Node's Graphql Server for exporting improved tracing logs & metrics to Elasticsearch. Adds ./start-elasticsearch-stack.sh script to bootstrap elasticsearch services (Elasticsearch + Kibana + APM Server) with all the required configurations.

1.2.1

  • Bumped Hydra dependencies to 5.0.0-alpha.4 to include processor syncing bug fix: Joystream/hydra#519

1.2.0 (Ephesus Release)

  • Added support for Channel Payouts mappings, specifically implemented ChannelPayoutsUpdated, ChannelRewardUpdated, ChannelRewardClaimedAndWithdrawn & ChannelFundsWithdrawn events.
  • Added support for processing updated MemberRemarked event, decorated with an optional payment parameter (Option<AccountId, Balance>). This is used to support Direct Channel Payment functionality.
  • Adds support to the Query Node for successfully processing the events across Runtime upgrades.
    • Previously the event type signature generated by @joystream/hydra-typegen,e.g., for a MemberRemarked event, looked as Members.MemberRemarkedEvent, now the generated event type would look as Members_MemberRemarkedEvent_V1001 where suffix(V1001) represents the runtime spec version.
    • The metadata of each spec version - for which the event type should be generated - needs to be part of single directory with spec version as file name (e.g. 1001.json, 2001.json etc). The directory path then should be provided as typegen source in manifest.yml file.

1.1.0

  • Added support for Apps functionality with accordance to a specification from: #4307:
    • New entity: App
    • Updated @joystream/metadata-protobuf dependency to 2.7.0 (includes App related protobuf messages)
    • Support for creating and updating Apps through MemberRemark
    • Support for connecting Video and Channel entities to App via a new entryApp relationship
    • Membership entity now includes new totalChannelsCreated and totalVideosCreated fields
  • FIX: deserializeMetadata now used instead of MemberRemarked.decode in MemberRemark event handler.
  • deserializeMetadata: added a new, optional skipWarning property

1.0.1

  • Added missing WorkingGroupBudgetFunded event mapping

1.0.0

  • First major version bump (1.0.0) due to mainnet release
  • Hydra dependencies updated from 4.0.0-alpha.9 to 4.0.0-alpha.11

Giza vs Olympia

Event mappings

Most of the events processed by the query node are now mapped to corresponding {event_name}Event entities, which implement the Event interface. Events of different types can be queried together, for example, take a look at the query below:

{
  events(
    where: {
      type_in: [
        AppliedOnOpeningEvent
        ApplicationWithdrawnEvent
        BudgetSpendingEvent
        StakeDecreasedEvent
        StakeIncreasedEvent
        OpeningAddedEvent
        OpeningCanceledEvent
        OpeningFilledEvent
        WorkerExitedEvent
        StatusTextChangedEvent
        BudgetSetEvent
        StakeSlashedEvent
        TerminatedLeaderEvent
        TerminatedWorkerEvent
      ]
    }
    limit: 25
    orderBy: [createdAt_DESC]
  ) {
    ... on AppliedOnOpeningEvent {
      ...AppliedOnOpeningEventFields
    }
    ... on ApplicationWithdrawnEvent {
      ...ApplicationWithdrawnEventFields
    }
    ... on BudgetSpendingEvent {
      ...BudgetSpendingActivityEventFields
    }
    ... on StakeDecreasedEvent {
      ...StakeDecreasedEventFields
    }
    ... on StakeIncreasedEvent {
      ...StakeIncreasedEventFields
    }
    ... on OpeningAddedEvent {
      ...OpeningAddedEventFields
    }
    ... on OpeningCanceledEvent {
      ...OpeningCanceledEventFields
    }
    ... on OpeningFilledEvent {
      ...OpeningFilledEventFields
    }
    ... on WorkerExitedEvent {
      ...WorkerExitedEventFields
    }
    ... on StatusTextChangedEvent {
      ...StatusTextChangedEventFields
    }
    ... on BudgetSetEvent {
      ...BudgetSetEventFields
    }
    ... on StakeSlashedEvent {
      ...StakeSlashedEventFields
    }
    ... on TerminatedWorkerEvent {
      ...TerminatedWorkerEventFields
    }
    ... on TerminatedLeaderEvent {
      ...TerminatedLeaderEventFields
    }
  }
}

There is a separate file with the event input schemas for each module that has some events mapped to entities:

New mappings

Runtime modules for which the mappings have been introduced in Olympia (there were no mappings in Giza):

Changes in existing schemas & mappings

  • avatarUri and about fields have been removed from Membership entity. They are now part of MemberMetadata, along with the new name field. Additionally, avatarUri is now of Avatar union type with AvatarUri and AvatarObject variants. Currently only AvatarUri variant is actually being used.
  • MembershipEntryMethod (Membership.entry) is now an union (previously an enum) with 3 variants: MembershipEntryPaid, MembershipEntryInvited and MembershipEntryGenesis. The first two include a reference to the event which caused the membership to be created (MembershipBoughtEvent / MemberInvitedEvent)
  • createdInBlock field has been removed from the Membership entity. Use .entry.{membershipBoughtEvent|memberInvitedEvent}.inBlock instead.
  • subscription field has been removed.
  • A lot of new fields have been added to Membership because of the introduction of the member invitations feature, referrals and mappings for other modules, which have bidirectional relations to Membership. For reference, see the full Membership schema.
  • A new MembershipSystemSnapshot entity has been introduced, which describes a snapshot of the membership system configuration parameters that can be changed through proposals. Those include default invitations count for new members, membership price, referral cut and initial balance of an invited member.
  • All working groups are now supported by the query node (previously only Apps and Storage groups were supported)
  • Worker.id now has a {workingGroupModuleName}-{workerId} format, for example: storageWorkingGroup-1.
  • Worker.isActive field has been removed in favor of Worker.status union (Note that isActive may be re-introduced after #2657)
  • Worker.type enum has been replaced by Worker.group, which is a reference to the new WorkingGroup entity (each supported group has a corresponding WorkingGroup record).
  • Worker.workerId (String) is now Worker.runtimeId (Int)
  • Worker.metadata is now Worker.storage
  • The mappings have been significantly enriched. For reference, see the full schema.