django-restit 4.2.157__py3-none-any.whl → 4.2.160__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
account/models/device.py CHANGED
@@ -96,6 +96,9 @@ class MemberDevice(models.Model, rm.RestModel, rm.MetaDataModel):
96
96
  md.kind = "mac"
97
97
  md.save()
98
98
  md.setProperty("user_agent", request.META.get('HTTP_USER_AGENT', ''))
99
+ metadata = request.DATA.get("device_metadata", None)
100
+ if isinstance(metadata, dict):
101
+ md.set_metadata(metadata)
99
102
  return md
100
103
 
101
104
  @classmethod
@@ -9,8 +9,10 @@ from datetime import datetime
9
9
 
10
10
  class UserPassKey(models.Model, rm.RestModel):
11
11
  """
12
- MemberDevice Model tracks personal devices associated with a user.
13
- This can include mobile and desktop devices.
12
+ A “Passkey” is a modern, secure authentication method designed to replace
13
+ traditional passwords with more robust and user-friendly alternatives.
14
+ It leverages cryptographic techniques and is based on standards like
15
+ WebAuthn and FIDO2, aiming to improve both security and convenience.
14
16
  """
15
17
  class RestMeta:
16
18
  VIEW_PERMS = ["manage_users", "owner"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-restit
3
- Version: 4.2.157
3
+ Version: 4.2.160
4
4
  Summary: A Rest Framework for DJANGO
5
5
  License: MIT
6
6
  Author: Ian Starnes
@@ -26,14 +26,14 @@ account/migrations/0021_alter_cloudcredentials_group.py,sha256=zoFYmE-hd3uRGX6DR
26
26
  account/migrations/0022_alter_memberdevice_modified.py,sha256=9eeKcdr9p6qFJ8ZxSnKSj1KxZjW8NZfM0YCMck6i0QQ,424
27
27
  account/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  account/models/__init__.py,sha256=cV_lMnT2vL_mjiYtT4hlcIHo52ocFbGSNVkOIHHLXZY,385
29
- account/models/device.py,sha256=0AFeLMGk4im4KZVd3eGSyRbK4eQEXiFM2cdY8GUzihs,5934
29
+ account/models/device.py,sha256=idOe88sRkGn3U3DJS7WizFWOGCm-D-nWPqIdBpX4M7Q,6072
30
30
  account/models/feeds.py,sha256=vI7fG4ASY1M0Zjke24RdnfDcuWeATl_yR_25jPmT64g,2011
31
31
  account/models/group.py,sha256=N9Ow7AtV4xN5zSE9E5-msthJy0G5-3DEr2MTmvFO1kU,22887
32
32
  account/models/legacy.py,sha256=zYdtv4LC0ooxPVqWM-uToPwV-lYWQLorSE6p6yn1xDw,2720
33
33
  account/models/member.py,sha256=qmLCOVbNTRr4L-E7BbOMtv4V64QN7K-0pXDgnuB-AbY,54722
34
34
  account/models/membership.py,sha256=90EpAhOsGaqphDAkONP6j_qQ0OWSRaQsI8H7E7fgMkE,9249
35
35
  account/models/notify.py,sha256=YKYEXT56i98b7-ydLt5UuEVOqW7lipQMi-KuiPhcSwY,15627
36
- account/models/passkeys.py,sha256=TJxITUi4DT4_1tW2K7ZlOcRjJuMVl2NtKz7pKQU8-Tw,1516
36
+ account/models/passkeys.py,sha256=lObapudvL--ABSTZTIELmYvHE3dPF0tO_KmuYk0ZJXc,1699
37
37
  account/models/session.py,sha256=ELkWjB_2KXQvPtRPrvuGJpJsqrxCQX_4J53SbqGz_2U,3737
38
38
  account/models/settings.py,sha256=gOyRWBVd3BQpjfj_hJPtqX3H46ztyRAFxBrPbv11lQg,2137
39
39
  account/oauth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -355,7 +355,7 @@ metrics/migrations/0003_metrics_expires.py,sha256=_g4oRv4NHW-4iCQx2s1SiF38LLyFf8
355
355
  metrics/migrations/0004_eodmetrics.py,sha256=Ky6ZVMZqa0F_SUp_QFWY7ZKBgVhy9CS4wZcsEhrkSgc,3271
356
356
  metrics/migrations/0005_alter_metrics_v1_alter_metrics_v10_alter_metrics_v11_and_more.py,sha256=pmwJfpPJ1RUX_CqM66l6vvV-nrAUPo_GIan0Pc9mQHs,2358
357
357
  metrics/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
358
- metrics/models.py,sha256=ytr4b4S7xlmNjW5C644OgFV_ITu-XTl-B-KgdmjsYdQ,13871
358
+ metrics/models.py,sha256=-bIEvhamfZZKweMEswBcBoZDOQhPqJHbCKyUuH6WjFc,14052
359
359
  metrics/periodic.py,sha256=IayBLLat40D8FB-A3bYBW9lxm9-IzcugQunojThQ_OU,661
360
360
  metrics/providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
361
361
  metrics/providers/aws.py,sha256=dIBGFE1Fvszy6rmVrn_Fm1zUDv345q4dBsg9Iit-XCc,8358
@@ -378,7 +378,7 @@ pushit/utils.py,sha256=IeTCGa-164nmB1jIsK1lu1O1QzUhS3BKfuXHGjCW-ck,2121
378
378
  rest/.gitignore,sha256=TbEvWRMnAiajCTOdhiNrd9eeCAaIjRp9PRjE_VkMM5g,118
379
379
  rest/README.md,sha256=V3ETc-cJu8PZIbKr9xSe_pA4JEUpC8Dhw4bQeVCDJPw,5460
380
380
  rest/RemoteEvents.py,sha256=nL46U7AuxIrlw2JunphR1tsXyqi-ep_gD9CYGpYbNgE,72
381
- rest/__init__.py,sha256=a3dlkSkIEGp-eiOC8pcUyVZpBh7Z58dCWy-kP_64c5g,122
381
+ rest/__init__.py,sha256=57t2eatlfwKDKM2SiFPDYudiC2k1CEhng7M_5-v1wwc,122
382
382
  rest/arc4.py,sha256=y644IbF1ec--e4cUJ3KEYsewTCITK0gmlwa5mJruFC0,1967
383
383
  rest/cache.py,sha256=1Qg0rkaCJCaVP0-l5hZg2CIblTdeBSlj_0fP6vlKUpU,83
384
384
  rest/crypto/__init__.py,sha256=Tl0U11rgj1eBYqd6OXJ2_XSdNLumW_JkBZnaJqI6Ldw,72
@@ -470,7 +470,7 @@ taskqueue/transports/http.py,sha256=AzliUnw_LuyO2zZZOoUAJGFcTV-Gxt1iE3hCVnIiyGQ,
470
470
  taskqueue/transports/s3.py,sha256=fMosL893u1iQdo6Y1djwb7KEoNo6TTsDPJl13OJdJP8,1913
471
471
  taskqueue/transports/sftp.py,sha256=jT1_krjTHA7DCAukD85aGYRCg9m0cEH9EWzOC-wJGdk,1891
472
472
  taskqueue/transports/sms.py,sha256=H1-LIGEMfbUNqJD9amRcsvKUSwtz9yBj1QNfB7EHjHE,142
473
- taskqueue/worker.py,sha256=1YBeTOziUBtgjtgjiwf5ULFrJAfizqxvHxgWomhgtWs,15655
473
+ taskqueue/worker.py,sha256=U_WGw3pJx9-I8loCQyfj3kyWScXOVb45g-6U9uyCH-c,15700
474
474
  telephony/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
475
475
  telephony/admin.py,sha256=iOdsBfFFbBisdqKSZ36bIrh_z5sU0Wx_PkaFi8wd1iA,243
476
476
  telephony/decorators.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -514,7 +514,7 @@ ws4redis/servers/uwsgi.py,sha256=VyhoCI1DnVFqBiJYHoxqn5Idlf6uJPHvfBKgkjs34mo,172
514
514
  ws4redis/settings.py,sha256=KKq00EwoGnz1yLwCZr5Dfoq2izivmAdsNEEM4EhZwN4,1610
515
515
  ws4redis/utf8validator.py,sha256=S0OlfjeGRP75aO6CzZsF4oTjRQAgR17OWE9rgZdMBZA,5122
516
516
  ws4redis/websocket.py,sha256=R0TUyPsoVRD7Y_oU7w2I6NL4fPwiz5Vl94-fUkZgLHA,14848
517
- django_restit-4.2.157.dist-info/LICENSE.md,sha256=VHN4hhEeVOoFjtG-5fVv4jesA4SWi0Z-KgOzzN6a1ps,1068
518
- django_restit-4.2.157.dist-info/METADATA,sha256=I_dHCkVtF_og1J2YA1F1AFYMGk5q2lvyZ5wFBHmIsjk,7663
519
- django_restit-4.2.157.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
520
- django_restit-4.2.157.dist-info/RECORD,,
517
+ django_restit-4.2.160.dist-info/LICENSE.md,sha256=VHN4hhEeVOoFjtG-5fVv4jesA4SWi0Z-KgOzzN6a1ps,1068
518
+ django_restit-4.2.160.dist-info/METADATA,sha256=WJGuAy2t6eDz8FyKruY6DebHJ1MpVFbY_fKUeKlnQnA,7663
519
+ django_restit-4.2.160.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
520
+ django_restit-4.2.160.dist-info/RECORD,,
metrics/models.py CHANGED
@@ -13,7 +13,7 @@ from .eod import EODMetrics
13
13
  # THIS IS IN DAYS
14
14
  METRICS_EXPIRE_HOURLY = settings.get("METRICS_EXPIRE_HOURLY", 90)
15
15
  METRICS_EXPIRE_DAILY = settings.get("METRICS_EXPIRE_DAILY", 360)
16
-
16
+ METRICS_EXPIRE_WEEKLY = settings.get("METRICS_EXPIRE_WEEKLY", 360)
17
17
 
18
18
  def metric(
19
19
  slug, keys, data, min_granularity="hourly",
@@ -38,6 +38,8 @@ def metric(
38
38
  expires = datetime.now() + timedelta(days=METRICS_EXPIRE_HOURLY)
39
39
  elif granularity == "daily":
40
40
  expires = datetime.now() + timedelta(days=METRICS_EXPIRE_DAILY)
41
+ elif granularity == "weekly":
42
+ expires = datetime.now() + timedelta(days=METRICS_EXPIRE_WEEKLY)
41
43
  m, created = Metrics.objects.get_or_create(
42
44
  uuid=key,
43
45
  defaults=dict(
rest/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
1
  from .uberdict import UberDict # noqa: F401
2
2
  from .settings_helper import settings # noqa: F401
3
3
 
4
- __version__ = "4.2.157"
4
+ __version__ = "4.2.160"
taskqueue/worker.py CHANGED
@@ -227,6 +227,7 @@ class WorkManager(object):
227
227
  elif action == "get_stats":
228
228
  data = nobjict(action="stats", hostname=settings.HOSTNAME)
229
229
  data.uptime = time.time() - self.started_at
230
+ data.workers = self.worker_count
230
231
  data.subscribed = self.subscribe_to
231
232
  data.running = self._running_count
232
233
  data.pending = self._pending_count