- Added defaultValue field property
- Added delete field property
- Fixed an issue when updating editor interface with sidebar
- Update ruby versions in CI/CD
- Require ruby >= 3.0
- Added support for cross-space references
- Replaces deprecated
URI.escape
withURI.encode_www_form_component
in Contentful::Management::Request#id - Configured VCR to redact sensitive data
- Updated readme for Entry References
- Added examples of fetching entries by field values in readme
- Added pagination support for environments
- Added support for Entry References API
- Changed CI/CD vendor
- Added support for Tags API
- Added getter/setter for EditorInterface#sidebar
- Added support for parameters on Users API. #227
- Added read support for Users API.
- Added support for Tags metadata
BREAKING CHANGES:
- Introduction of new top-level tags
metadata
property in api response.
- Fixed an issue when loading entries or assets that included tags. #219
- Fixed a possible validation error when submitting a content type. #218
- Added support for Users API. #217
- Fixed an issue where JSON fields with top-level arrays were not properly parsed. #215
Note: Only a minor change because the removed feature was Alpha.
- Add
OrganizationPeriodicUsage
,Client#organization_periodic_usages
andOrganization#periodic_usages
. - Add
SpacePeriodicUsage
,Client#space_periodic_usages
andOrganization#space_periodic_usages
.
- Removed now deprecated Alpha Usage APIs, which have been superseeded by the new APIs added.
- Added support for Rich Text specific validations. #200
- Updated maximum allowed version of the
http
gem. #205
- Added support for query parameters on the Space endpoints. #197
- Fixed environment aware resources that were not having the
environment_id
properly calculated. #195
- Relaxed maximum allowed version of the
json
gem. #196
- Default locale is now fetched from the client instead of passed around. #194
- Added validations for Rich Text. #193
- Fixed the ability to clone content types by reusing other content type's fields. #192
- Fixed
#save
method for multiple resources. #190
- Added environment branching.
- Added
updated?
to publishable resources. #178
- Added Usage Periods API.
- Added API Usages API.
As RichText
moves from alpha
to beta
, we're treating this as a feature release.
- Added
#save
method to resources, generalizing how to create/update them.
- Renamed
StructuredText
toRichText
.
- Added support for StructuredText field type.
- Added
transformation
andfilters
toWebhook
. - Added
parameters
toUIExtension.extension
.
#reload
now works withEnvironment
objects.- Fixed URL generation for
/users
endpoint. - Fixed Space Memberships now properly forward all attributes.
- Simplified asset creation process - this change doesn't affect functionality, but removes a couple of steps and provides equivalent functionality.
- Fixed URL generation for
/organizations
endpoint.
BREAKING CHANGES:
nil
values on localized entries now no longer fallback to the default locale value when reading them. #164
- Fixed side-effect that was causing entries created using
content_type.entries.new
to fail to save.
- Added
#save
as a shortcut foreditor_interface.update(controls: editor_interface.controls)
. #155
- Fixed query parameter forwarding when querying from an environment proxy. #160
- Added environment selection option for Api Keys.
- Added a way to obtain Preview Api Keys.
- Fixed
Link#resolve
not working for all resource types.
- Fixed environment ID fetching for environment aware resources.
- Fixed environment proxy
find
method.
- Added support for Environments.
BREAKING CHANGES:
- In order to provide a better top-level client API,
space_id
andenvironment_id
, are now sent on the resource proxy call, rather than on the call itself. This allows for better reusability of proxies, which in the end provide a better developer experience. Resources that are not environment-aware, still have the parameter arrangement changed, so proxies are also reusable, but do not includeenvironment_id
. Thespaces
,users
,organizations
andpersonal_access_tokens
proxies still do not require any parameters as they are top level resources.
Before (this code will assume that the old code was also environment aware, so that the impact is more visible):
# Fetching all entries
client.entries.all(space_id, environment_id)
# Fetching a single entry
client.entries.find(space_id, environment_id, entry_id)
# If you wanted to find another entry, you'd have to repeat `space_id` and `environment_id`
client.entries.find(space_id, environment_id, another_entry_id)
Now:
# Fetching all entries
client.entries(space_id, environment_id).all
# Fetching a single entry
entries_proxy = client.entries(space_id, environment_id)
entries_proxy.find(entry_id)
# If you wanted to find another entry, you just reuse the resource proxy
entries_proxy.find(another_entry_id)
The proxies, apart from the parameter re-shuffling, have kept the same interface.
- Spaces do no longer have proxies for
entries
,assets
,content_types
,ui_extensions
,locales
andeditor_interfaces
. These can now be found underenvironments
. - Space objects now have
environments
as a proxy accessor. - Content Type Caching is now done when requesting Content Types, or when a property is missing on an Entry. Also
dynamic_entries
has been updated to receive a hash ofspace_id => environment_id
pairs.
all_published
methods for Entries and Assets have been removed.
- Fixed an error when calling next page on
Contentful::Array
that came from requests without query parameters. #143 - Fixed an issue with sending
default
on newly created locales.
- Added option to add a
fallback_code
when creating locales.
- Added better error messages for all possible API errors #95
- Added option to disable Content Type caching completely.
- Added UI Extension Endpoint.
- Added Space Memberships Endpoint.
- Added Webhook Calls Endpoint.
- Added Webhook Health Endpoint.
- Added Content Type Snapshots Endpoint.
- Added Organizations Endpoint.
- Added User Endpoint.
- Added Personal Access Tokens Endpoint.
- Rewrote HTTP internals in order to allow base-level resources and simplified Client.
- Added missing validation property for assets #121
- Added
X-Contentful-User-Agent
header for more information.
- Added support for Upload API
- Added support for Snapshot API
- Added support for Select Operator in Entries and Assets
- Added support for Fallback Locales (
nil
values get now removed from the requests on#update
and#create
)
- Added Rate Limit automatic handling
- Add support for
::Contentful::Entry
and::Contentful::Asset
serialization when using the CDA SDK along side this client #105 - Add
:optional
property to Locale
- Add Roles and Permissions Support
- Add Headers, Topics and Webhook Name Support
- Add Editor Interfaces Support
- Add
:omitted
property to Content Type Fields
- Added Deprecation warning for
assets.all_published
andentries.all_published
. This methods will be completely removed soon.
- Changed locale selection priority when requesting fields #91
Client
is no longer a singleton. Therefore allResource
class calls (Entry
,Space
,ContentType
, etc...) require an instance of a client. The Client needs to be the first parameter of the call. As sending the client in every call is not a great solution, a shorthand for every resource class is present on the client. Calls can be done now like:client.entries.all
. This works for every resource class, and all of the calls existing previously (all
,find
,create
,all_published
). Note:all_published
is specific toEntry
,Asset
andContentType
.- You can have as many instances of client, for as many users as you want.
Complete List of resource links on Client
:
#entries
#assets
#spaces
#content_types
#locales
#webhooks
#api_keys
- Removed code duplication between FieldAware and DynamicEntry #78
- Refactored FieldAware code to be simplified
- Proxy Support #88
- Added
#destroy
method to Locales - Added
ApiKey
class, methods andSpace
associations - Added
.all_published
methods forContentType
,Asset
andEntry
- Locales can now update
:code
value
- Changed documentation format to YARD
- Added
:dynamic_entries
parameter on Client initialization - Added
FieldAware
for Entries that don't have complete fields
- Fixed
nil
fields on Content Types no longer sent to API #79
- Field names are no longer dependent on being present on
default_locale
#70
- Ensure that
Validation.type
returns correct value #59, #66 - Ensure that already existing
Space
returns correctLocale
for#default_locale
#60 - Remove unintended nested
Validation
#49
fields_for_query
should only skipnil
values #63, #64- Reinstate support for simple assignments to fields #61, #62
- Fix NULL/nil handling for entries #65
- Explicitly set displayField to nil when it is not existing #53, #54
- Merge values for default locale and current locale #58
- Fix access to space default_locale instance variable #47
- Better handling of 503 responses from the API #48
- Do Not loose displayField on update when it is not set #52
- Access request and response from Contentful::Management:Error #46
- Handle 429 responses as errors #46
- Allow setting a default locale when creating a space #43
- Handle
UnprocessableEntity
(HTTP 422) as its own error. #42
- Handle 409 responses as errors #39
- Return Keep attribute if it's already a hash #33
- Typo in header #34
- Items are nil when creating an array field for a content type #35
raise_errors
can be enabled, disabled by default #38
- Logging of requests
- Access to validations in responses
- Create validations through the API
- Cleaner and better error handling
- Cleaned the code
- Remove encoding strings from the source code files
- Use array for symbols in entry fields
- create entry with multiple locales, skip attributes for not localized fields in content types
- reload Assets
- Add optional gzip encoding
- Support for web hooks
- Image url to asset
- remove implicit processing of assets.
- Gem is modifying nil #17
- rename asset.process_files to asset.process
- Cleaning code
- More documentation
- next_page feature
- create entry with specific locale
- service unavailable error (503)
- reload method on objects
- Code cleanup
- Fix: Convert an Entry to a DynamicEntry after being created.
- rdoc
- filter by content_type id
- Headers not properly cleared between requests
- Create entries with custom identifier
- Code cleanup
- alpha pre-release