Benjamin Neff
0980294a0d
Validate Conversation subject
...
also reordered fields of Conversation
2016-07-12 03:13:39 +02:00
Benjamin Neff
4136fb973e
Photo: status_message_guid is optional in xml
2016-07-12 03:04:54 +02:00
Benjamin Neff
eb8cdef604
validate Photo text length
2016-07-12 03:04:09 +02:00
Benjamin Neff
9b3231583d
validate StatusMessage raw_message length
2016-07-12 03:04:09 +02:00
Benjamin Neff
26b7991def
handle empty xml-elements for nested entities
2016-07-12 03:04:09 +02:00
Steffen van Bergerem
e0ab18c0ea
Improve code documentation
2016-07-12 02:08:21 +02:00
Dennis Schubert
7c3f430bcf
Do not reuse cURL sockets
...
This patch sets CURLOPT_FORBID_REUSE, which tells cURL to close all
connections when they are done. By default, connections are held open
for later use unless explicitly closed or expired by a timeout. This can
improve performance if the same instance is used for multiple requests
to a single host.
We never have that: a host receives only one message per queue job, so
keeping the socket opened for 60 seconds (the default timeout) is
totally useless.
In addition, keeping the sockets open can cause problems for larger
instances with fast workers and a lot of jobs. Mainly, diaspora/#6485 is
caused by this very issue, which is resolved by this as well.
2016-07-02 10:38:29 +02:00
Benjamin Neff
699c74a8f0
validate message text
2016-07-01 05:06:02 +02:00
Benjamin Neff
4cee776338
release version 0.1.1
2016-06-26 21:41:13 +02:00
Benjamin Neff
7cf7a0af5b
call super instead of copying the code.
2016-06-26 21:29:22 +02:00
Benjamin Neff
9b090a3950
fetch root posts for reshares
2016-06-26 21:22:01 +02:00
Benjamin Neff
79cbed4a3b
release version 0.1.0
2016-06-26 06:16:33 +02:00
Benjamin Neff
e001d14b8f
profile_url and atom_url are optional in webfinger
2016-06-25 00:12:37 +02:00
Benjamin Neff
6b1889aa2c
use salmon specs from github with rawgit
...
because the gooclecode links don't work anymore
2016-06-22 19:59:08 +02:00
Benjamin Neff
da79b72d62
don't parse url from hcard
...
this is deprecated anyway and is not used anywhere, so we don't need to parse it.
2016-06-22 02:56:22 +02:00
Benjamin Neff
491419c99a
refactor signature verification for relayables
2016-06-21 05:19:49 +02:00
Benjamin Neff
4b0e77b25a
add more info to errors for better logging
2016-06-21 04:56:41 +02:00
Benjamin Neff
117ee79c8c
validate that Participation parent exists and parent-author is local
2016-06-21 02:39:13 +02:00
Benjamin Neff
d054d42b86
use .to_h instead of Hash[]
2016-06-20 03:59:23 +02:00
Benjamin Neff
206b8d1eb9
use private_class_method with returned symbol of def
2016-06-20 03:35:26 +02:00
Benjamin Neff
f243082def
only allow photos from the same author to be nested in status message
2016-06-17 18:34:27 +02:00
Benjamin Neff
4d7c7422c3
only allow messages from the same author to be nested in conversation
2016-06-17 18:28:42 +02:00
Benjamin Neff
c62bede41c
message not relayable anymore
...
receive only from author and ignore signature checking, or from parent
author with valid signature.
see #36
2016-06-17 18:16:40 +02:00
Benjamin Neff
7f869a5cdf
participation not relayable anymore
...
receive only from author and no signature checking
see #35
2016-06-17 17:52:58 +02:00
Benjamin Neff
77c3165c51
set parent_author_signature on RelayableRetraction if author is parent author
...
the target_author_signature is only checked, if the parent author
receives it. so the parent_author_signature is the important signature.
2016-06-05 16:17:05 +02:00
Benjamin Neff
4bde03e2de
use RelatedEntity as normal nested entity, but don't add it to xml
2016-06-05 04:13:55 +02:00
Benjamin Neff
e5203182bf
replace invalid characters from xml
2016-05-31 04:25:43 +02:00
Benjamin Neff
653b0fe276
instantiate nested entities if they are provided as hash
...
also add debug logging to entity constructor
2016-05-30 03:23:57 +02:00
Benjamin Neff
4ded6da139
Entity#to_h returns nested entities as hash
2016-05-30 03:22:07 +02:00
Benjamin Neff
8d422ddff1
debug logging for send magic envelope
2016-05-29 02:44:53 +02:00
Benjamin Neff
72ea858e25
add logger also as class method when included
2016-05-29 02:44:33 +02:00
Benjamin Neff
38922d5f30
add string representation to entities for better and easier logging
2016-05-15 00:11:04 +02:00
Benjamin Neff
58b22df9c5
convert entity name to needed format for fetching
2016-05-14 17:56:34 +02:00
Benjamin Neff
458265b78f
fix rubocop offenses for rubocop 0.40.0
2016-05-11 02:22:48 +02:00
Benjamin Neff
a0f39b4f3a
Revert "add ParentNotFound error, if parent can't be fetched"
...
This reverts commit 5a9ba266b4 .
There is already a NotFetchable error ...
2016-05-07 12:44:58 +02:00
Benjamin Neff
5a9ba266b4
add ParentNotFound error, if parent can't be fetched
2016-05-07 03:12:33 +02:00
Benjamin Neff
5f3d25e5c4
fixed typo in logging
2016-05-02 03:58:25 +02:00
Benjamin Neff
c9d0b978d4
add validators for empty arrays
2016-04-29 03:59:24 +02:00
Benjamin Neff
28ab54abef
use default values after parse xml
2016-04-29 02:59:09 +02:00
Benjamin Neff
8aa353a438
add validator for poll_answers
2016-04-29 01:32:49 +02:00
Benjamin Neff
4953d0c736
add debug logging on unenvelop
2016-04-27 23:14:05 +02:00
Benjamin Neff
53ba96acca
simplify diaspora ID regex
...
hostname doesn't allow underscores, fixes #33
2016-04-23 23:48:03 +02:00
Benjamin Neff
0c4307a4de
better logging for receiving
2016-04-03 03:34:53 +02:00
Benjamin Neff
a8af94f192
validates entity on receive if it can be public but is not
2016-04-03 00:01:50 +02:00
Benjamin Neff
c8be9083f0
move sender_valid? logic to Retraction and Relayable
2016-04-02 22:14:38 +02:00
Benjamin Neff
05cd90f073
validate sender for retraction and relayable
2016-04-01 03:51:24 +02:00
Benjamin Neff
c7c2957b07
fetch from remote if parent unknown locally
2016-03-31 04:33:52 +02:00
Benjamin Neff
6ef1545fd0
cleanup parent_type for relayables
2016-03-29 03:45:32 +02:00
Benjamin Neff
1d4d3d732d
use shorter callback keys for key-callbacks
2016-03-29 02:42:19 +02:00
Benjamin Neff
2db0931ce5
write more tests for retractions
2016-03-29 02:30:43 +02:00
Benjamin Neff
f88a3abb3d
use RelatedEntity as target for all Retractions
2016-03-28 21:15:21 +02:00
Benjamin Neff
01d45e225d
use RelatedEntity as target for RelayableRetraction
2016-03-28 20:14:25 +02:00
Benjamin Neff
8f2b3e6a14
use data from parent-RelatedEntity for Relayables
2016-03-28 19:52:57 +02:00
Benjamin Neff
23fc8dc180
use related entity as parent for relayables
2016-03-28 17:46:37 +02:00
Benjamin Neff
3ac21b585b
add fetch_related_entity callback
2016-03-28 17:23:38 +02:00
Benjamin Neff
1ee9d30ddb
add related entity
2016-03-28 17:23:38 +02:00
Benjamin Neff
51723f95fa
release version 0.0.13
2016-03-26 00:37:21 +01:00
Benjamin Neff
e67629041e
require version for user agent
2016-03-26 00:37:12 +01:00
Benjamin Neff
6eb36931be
improve documentation
2016-03-25 23:20:43 +01:00
Benjamin Neff
ef43104880
create new Contact entity
...
* replaces Request entity (better name)
* with following/sharing state
* should also be used as retraction-type
see #32
2016-03-23 01:28:06 +01:00
Benjamin Neff
20675b941a
create public/private receiver
2016-03-21 01:05:13 +01:00
Benjamin Neff
ca0a853134
return MagicEnvelope after parsing a Slap
2016-03-21 01:05:13 +01:00
Benjamin Neff
e4b5e79842
create MagicEnvelope instance after unenvelop
2016-03-20 21:07:47 +01:00
Benjamin Neff
0990eff69c
don't add key_id to legacy private encrypted slap xml
2016-03-20 17:54:52 +01:00
Benjamin Neff
3811cd0c03
move parse logic to receive methods
2016-03-20 17:39:41 +01:00
Benjamin Neff
3a83dc97ac
use author_id from slap to fetch pubkey in magic-env
2016-03-20 17:16:08 +01:00
Benjamin Neff
4e0c7e205b
create attr_reader for payload entity and sender on magic env instance
2016-03-20 17:08:58 +01:00
Benjamin Neff
930c3051c7
handle SignedRetraction and RelayableRetraction as Retraction after parse
2016-03-18 03:12:31 +01:00
Benjamin Neff
bd9cc67f5e
create receiver for new protocol and write tests
2016-03-18 02:54:17 +01:00
Benjamin Neff
176425f881
rename Fetcher to HttpClient
...
don't use the same classname twice
2016-03-15 02:17:04 +01:00
Benjamin Neff
d83b6f14f5
create entity fetcher for public entities
2016-03-15 02:17:04 +01:00
Benjamin Neff
4a7fd52844
don't modify the parameter string in Entity.entity_class
2016-03-15 01:30:08 +01:00
Benjamin Neff
7e2815fabc
create fetch entity callback
...
and url_to callback
2016-03-15 01:30:08 +01:00
Benjamin Neff
35ea1d3f70
create abstract post type with shared attributes
2016-03-11 03:44:09 +01:00
Benjamin Neff
57ed20719f
add created_at to comment entity
...
this is a preparation for diaspora/diaspora#4269
2016-03-08 03:08:28 +01:00
Benjamin Neff
10c09752d2
xml_order and additional_xml_elements only for Relayables
2016-02-22 02:42:50 +01:00
Benjamin Neff
2cdaea0d70
move parse code to Entity
2016-02-20 20:23:33 +01:00
Benjamin Neff
2e3bf2f132
refactoring to_xml for SignedRetraction and RelayableRetraction
2016-02-20 02:06:32 +01:00
Benjamin Neff
d616e5fae9
refactoring to_xml and signing
2016-02-19 03:35:01 +01:00
Benjamin Neff
823db3ee18
refactoring xml generation
...
also refactoring `xml_name`
2016-02-18 03:17:08 +01:00
Benjamin Neff
03fe90ffaa
Merge branch 'encrypted-salmon' into develop
2016-02-15 04:17:13 +01:00
Benjamin Neff
f1874f20bd
add slap/magic-env switch to the receive-controller
2016-02-14 19:00:43 +01:00
Benjamin Neff
566ac9ff2d
rename SlapReceiver and mark them deprecated
2016-02-14 01:36:18 +01:00
Benjamin Neff
76a4ea929b
read sender from magic envelope and fetch key
2016-02-13 22:47:58 +01:00
Benjamin Neff
d2cdbd2aff
mark slap classes as deprecated
2016-02-13 22:47:23 +01:00
Benjamin Neff
744e194b90
add EncryptedMagicEnvelope
...
This is a simpler replacement for the EncryptedSlap
2016-02-13 20:34:09 +01:00
Benjamin Neff
160da072b6
add key_id to magic envelope
2016-02-13 20:34:09 +01:00
Benjamin Neff
19621fecdf
use different key for envelope and header
2016-02-13 20:34:08 +01:00
Benjamin Neff
c96369b36e
add alias functionality to entities
...
* add diaspora_id alias to Person and Profile for Discovery
* also diaspora_id for AccountDeletion
2016-02-12 03:26:33 +01:00
Benjamin Neff
5ebda543a1
change diaspora_id to author
...
see #29
2016-02-10 03:17:10 +01:00
Benjamin Neff
1c2e2f560d
Request: rename sender_id to diaspora_id
...
See #29
2016-02-06 21:19:09 +01:00
Benjamin Neff
5ce71f57d6
allow unwrapped XMLs
2016-02-06 03:10:48 +01:00
Benjamin Neff
76f6929668
add unknown xml elements to the xml again
2016-02-06 02:35:26 +01:00
Benjamin Neff
98ff8cbae0
add new (alphabetic) signature logic
2016-02-06 01:36:27 +01:00
Benjamin Neff
1c7a5ad3e6
add additional parsed xml properties to the entity-instance
...
allow mapping with `name` and `xml_name`
2016-02-05 21:13:30 +01:00
Benjamin Neff
cf5da6e1ab
move guid and diaspora_id to Relayable
2016-02-03 01:59:14 +01:00
Benjamin Neff
cfbf401585
static legacy signature order
2016-02-02 03:02:44 +01:00
Benjamin Neff
b19e1b8e52
move signing logic for relayables to Relayable
...
refactoring exceptions for relayables
2016-01-31 20:22:51 +01:00
Benjamin Neff
714f6d8273
create own sign-logic for SignedRetraction and RelayableRetraction
...
this is a small code-duplication, but will be removed when
SignedRetraction and RelayableRetraction will be removed.
2016-01-31 15:29:41 +01:00
Benjamin Neff
f4f25e8663
add status to the update_pod callback
2016-01-30 18:28:37 +01:00
Benjamin Neff
530b534c42
Merge branch 'master' into develop
2016-01-23 03:01:00 +01:00
Benjamin Neff
0fb7ebc2c1
release version 0.0.12
2016-01-23 02:40:28 +01:00
Benjamin Neff
08ecfca5d3
rename target_type to parent_type in relayables
...
this is equivalent to parent_guid and parent_author_signature
also added a validator for parent_type
2016-01-22 01:05:42 +01:00
Benjamin Neff
8bd9c28ce0
override to_h to sign relayables
2016-01-21 23:40:36 +01:00
Benjamin Neff
1aead0ac5b
refactoring RelayableRetraction and SignedRetraction signing
2016-01-21 05:27:48 +01:00
Benjamin Neff
adf14283e3
refactoring relayable signature-checking
...
verify signature after creating the entity instance
2016-01-21 05:27:48 +01:00
Benjamin Neff
583d567d67
bump rubocop and pronto-rubocop
...
make some refactorings for new cops
2016-01-19 01:32:22 +01:00
Benjamin Neff
fd1dd7988d
improve documentation
2016-01-18 00:17:51 +01:00
Benjamin Neff
2d4f9a60d5
use obj_str for logging
2016-01-17 04:27:14 +01:00
Benjamin Neff
a0398430ed
refactor encrypted slap to reuse it for every recipient
2016-01-14 03:46:01 +01:00
Benjamin Neff
c7f33d7cf4
rename 'pkey' to 'privkey' and 'pubkey'
2016-01-13 02:20:49 +01:00
Benjamin Neff
d852144f3c
add send functionality
2016-01-12 02:36:32 +01:00
Benjamin Neff
aa84c4c40e
move Receiver to Federation module
2016-01-11 02:30:32 +01:00
Benjamin Neff
1cc8fac8a1
add http config to DiasporaFederation
2016-01-11 01:54:48 +01:00
Benjamin Neff
0917fc2f19
allow photo.status_message_guid to be nil
2016-01-10 19:05:54 +01:00
Benjamin Neff
cf45416344
allow guid to be nilable
2016-01-10 18:55:32 +01:00
Benjamin Neff
cff74982bf
release version 0.0.11
2016-01-03 03:29:07 +01:00
cmrd Senya
8afd3ee0b5
fix created_at in factories
...
The present Diaspora's relayable signing process is not compatible
with DateTime.now.utc string format, so fall back to default value.
2015-12-31 02:02:35 +03:00
Benjamin Neff
55f3c2dce0
release version 0.0.10
2015-12-30 02:41:44 +01:00
Benjamin Neff
7ed848c2f5
add ostatus subscribe-url to webfinger
2015-12-27 22:19:58 +01:00
Benjamin Neff
9f67cade7e
fix factories with spring
2015-12-27 22:19:58 +01:00
cmrd Senya
a0545c37de
Allow parent entity types different than "Post"
...
Entities::Message requires "Conversation" at the place, for instance.
2015-12-21 14:05:42 +03:00
Benjamin Neff
358e844772
cleanup for rubocop
2015-12-19 17:31:53 +01:00
Benjamin Neff
c7446f7220
refactor receive classes
2015-12-18 00:42:41 +01:00
Benjamin Neff
b56c1e2d04
send xml to callbacks to queue it for receive
2015-12-18 00:11:32 +01:00
cmrd Senya
5aac8c2423
Receiving entities support
2015-12-15 19:06:51 +03:00
Benjamin Neff
d854f61d64
release version 0.0.9
2015-12-13 02:55:30 +01:00
Benjamin Neff
73fab4d01c
add more documentation
2015-12-13 01:22:17 +01:00
cmrd Senya
7702513ca5
Documentation for the callbacks
2015-12-11 03:01:42 +03:00
Benjamin Neff
f17739007a
improve documentation for entities
2015-12-07 04:10:17 +01:00
Benjamin Neff
965babbfee
mark RelayableRetraction and SignedRetraction as deprecated
...
The normal Rectraction can be used for this:
* RelayableRetraction: Both the author and the parent author can retract
a relayable, so there is no need to check if it was relayed.
* SignedRetraction: this is already signed at the salmon-level. No need
to add an additional signature at this level. Only used for
StatusMessage.
2015-12-07 02:05:37 +01:00
cmrd Senya
91376a3e26
Retractions signatures support
2015-12-03 00:15:32 +03:00
Benjamin Neff
48b56ee6da
Array#to_h is new in Ruby 2.1, we still support 2.0
2015-11-30 01:34:33 +01:00
Benjamin Neff
06695610dd
write tests to have 100% coverage again
2015-11-30 00:28:20 +01:00
Benjamin Neff
9d999918e5
make entities more consistent
2015-11-29 23:50:44 +01:00
Benjamin Neff
dc0f786b2c
improve documentation
2015-11-29 23:26:30 +01:00
Benjamin Neff
eef6ca19d2
do some refactorings
...
- use more "tap"
- fix rubocop issues
2015-11-28 18:23:02 +01:00
cmrd Senya
dba15af1d8
Documentation added
2015-11-28 18:40:55 +03:00
cmrd Senya
64608e7869
Introduce diaspora_federation-test gem
2015-11-23 23:58:28 +03:00
cmrd Senya
91c3753019
Add signature computation for entities support
2015-11-22 23:40:46 +03:00
cmrd Senya
b9b5ee6f7d
Do the same generalization for Relayable for validators taking
...
into account that "author_signature" and "parent_author_signature"
are allowed to be empty, actually.
2015-11-13 17:44:45 +03:00
cmrd Senya
fd1f896d17
Introduce the "Relayable" entity, which encapsulates common
...
properties of entities that are inherited from Relayable class
in the Diaspora source code - "parent_guid",
"parent_author_signature", "author_signature".
2015-11-13 16:43:36 +03:00
cmrd Senya
e8fa25c6a6
Add the Poll entity
2015-11-07 15:58:30 +03:00
cmrd Senya
f12a4c21db
Merge all the entities left from the @Raven24's gem.
...
These are: AccountDeletion, Comment, Conversation, Like, Message,
RelayableRetraction, Reshare, Retraction, SignedRetraction
2015-11-06 01:50:04 +03:00
cmrd Senya
9cb6fe4d1b
Some more code merged from the @Raven24's gem. The code is
...
related to the request, status_message, participation, photo and
location entities, its validators and tests for all of the things.
2015-11-03 00:39:30 +03:00
Benjamin Neff
eaedc3473a
use Faraday.default_adapter
...
fixes #7
2015-11-01 04:05:35 +01:00
Benjamin Neff
3aa8ad63a7
Merge pull request #6 from cmrd-senya/request-validator
...
A validator for the request entity
2015-10-28 02:57:07 +01:00
Benjamin Neff
42e994e01e
use xml_name when parsing an entity
2015-10-28 02:53:17 +01:00
cmrd Senya
4cbffbdc67
A validator for the request entity
2015-10-28 04:38:38 +03:00
Benjamin Neff
7f731e9af0
refactor salmon stuff
...
* fix rubocop issues
* remove duplicate code
* use `describe` in specs for methods
2015-10-26 23:50:31 +01:00