1
0
mirror of https://github.com/etesync/server synced 2025-04-26 05:09:00 +00:00

Compare commits

..

No commits in common. "master" and "v0.14.1" have entirely different histories.

7 changed files with 12 additions and 21 deletions

View File

@ -1,9 +1,5 @@
# Changelog
## Version 0.14.2
- Fix issue with some requests failing in some scenarios with the JS client.
- The JS client was omitting optional fields which were accidentally made to be required. It happened because pydantic v2 changed the behavior in a few ways (for the better fwiw) and we missed a few places when upgrading.
## Version 0.14.1
- Fix issue with serializing non utf8 422 errors
- Appease django warnings about default auto field

View File

@ -72,7 +72,7 @@ class CollectionItemRevisionInOut(BaseModel):
class CollectionItemCommon(BaseModel):
uid: str
version: int
encryptionKey: t.Optional[bytes] = None
encryptionKey: t.Optional[bytes]
content: CollectionItemRevisionInOut
@ -93,12 +93,12 @@ class CollectionItemOut(CollectionItemCommon):
class CollectionItemIn(CollectionItemCommon):
etag: t.Optional[str] = None
etag: t.Optional[str]
class CollectionCommon(BaseModel):
# FIXME: remove optional once we finish collection-type-migration
collectionType: t.Optional[bytes] = None
collectionType: t.Optional[bytes]
collectionKey: bytes
@ -132,7 +132,7 @@ class RemovedMembershipOut(BaseModel):
class CollectionListResponse(BaseModel):
data: t.List[CollectionOut]
stoken: t.Optional[str] = None
stoken: t.Optional[str]
done: bool
removedMemberships: t.Optional[t.List[RemovedMembershipOut]] = None
@ -140,13 +140,13 @@ class CollectionListResponse(BaseModel):
class CollectionItemListResponse(BaseModel):
data: t.List[CollectionItemOut]
stoken: t.Optional[str] = None
stoken: t.Optional[str]
done: bool
class CollectionItemRevisionListResponse(BaseModel):
data: t.List[CollectionItemRevisionInOut]
iterator: t.Optional[str] = None
iterator: t.Optional[str]
done: bool
@ -173,7 +173,7 @@ class ItemDepIn(BaseModel):
class ItemBatchIn(BaseModel):
items: t.List[CollectionItemIn]
deps: t.Optional[t.List[ItemDepIn]] = None
deps: t.Optional[t.List[ItemDepIn]]
def validate_db(self):
if self.deps is not None:
@ -342,10 +342,7 @@ def _create(data: CollectionIn, user: UserType):
# TODO
process_revisions_for_item(main_item, data.item.content)
try:
collection_type_obj, _ = models.CollectionType.objects.get_or_create(uid=data.collectionType, owner=user)
except IntegrityError:
raise ValidationError("bad_collection_type", "collectionType is null")
models.CollectionMember(
collection=instance,

View File

@ -85,7 +85,7 @@ class CollectionInvitationOut(CollectionInvitationCommon):
class InvitationListResponse(BaseModel):
data: t.List[CollectionInvitationOut]
iterator: t.Optional[str] = None
iterator: t.Optional[str]
done: bool

View File

@ -48,7 +48,7 @@ class CollectionMemberOut(BaseModel):
class MemberListResponse(BaseModel):
data: t.List[CollectionMemberOut]
iterator: t.Optional[str] = None
iterator: t.Optional[str]
done: bool

View File

@ -164,8 +164,6 @@ if any(os.path.isfile(x) for x in config_locations):
if "allowed_hosts" in config:
ALLOWED_HOSTS = [y for x, y in config.items("allowed_hosts")]
CSRF_TRUSTED_ORIGINS = ["https://" + y for x, y in config.items("allowed_hosts")] + \
["http://" + y for x, y in config.items("allowed_hosts")]
if "database" in config:
DATABASES = {"default": {x.upper(): y for x, y in config.items("database")}}

View File

@ -25,7 +25,7 @@ click==8.1.7
# via
# typer
# uvicorn
django==4.2.14
django==4.2.13
# via -r requirements.in/base.txt
dnspython==2.6.1
# via email-validator

View File

@ -2,7 +2,7 @@ from setuptools import find_packages, setup
setup(
name="etebase_server",
version="0.14.2",
version="0.14.1",
description="An Etebase (EteSync 2.0) server",
url="https://www.etebase.com/",
classifiers=[