Benjamin Neff
f5ff4a71e6
Only add optional properties to generated XML and JSON when not nil
2017-07-30 00:32:54 +02:00
Benjamin Neff
af7b6485ac
Mark properties as optional
2017-07-30 00:32:54 +02:00
Benjamin Neff
1c8f656b46
Release version 0.2.0
2017-07-02 23:34:01 +02:00
Benjamin Neff
e26a86c173
Switch PercentLiteralDelimiters to new default
...
Let's change that to the new rubocop default, which is also the
suggestion in the ruby style guide.
See https://github.com/bbatsov/ruby-style-guide#percent-literal-braces
This was changed in diaspora too, see diaspora/diaspora#7466
It also includes the changes in the code. This was done with
`rubocop --auto-correct` and no we have zero offenses again.
2017-06-30 02:23:44 +02:00
cmrd Senya
5730b88296
Merge pull request #67 from SuperTux88/comments-created_at
...
Add created_at to comment
2017-06-20 15:59:35 +03:00
Benjamin Neff
66152337f2
Require "typhoeus" for HydraWrapper
2017-06-16 20:52:36 +02:00
Benjamin Neff
c0ea38d258
Improve logging when validation fails
...
Add guid and author to error messages if available.
2017-06-11 16:01:04 +02:00
Benjamin Neff
5b22d04626
Add created_at to comment
...
Fixes diaspora/diaspora#4269
2017-06-05 23:58:08 +02:00
Benjamin Neff
0a770918b2
Bump rubocop
2017-06-04 02:35:21 +02:00
Benjamin Neff
92ce4eacf8
Validate the author of the root post for a reshare
2017-06-04 01:44:46 +02:00
Benjamin Neff
8e43c2716d
Add test for RelatedEntity#to_json
2017-06-04 01:39:17 +02:00
Benjamin Neff
c92624d926
Create RelatedEntity.fetch method
2017-06-04 01:36:25 +02:00
Benjamin Neff
473450c34a
Add rake task to update JSON schemas for github-pages
2017-06-03 20:00:37 +02:00
Benjamin Neff
a05c6fe6d1
Remove parent_author_signature from json
2017-06-02 01:12:01 +02:00
Benjamin Neff
57edc8baab
Don't check the author_signature when the author is the parent author
...
The signature from the Magic Envelope is enough for that scenario,
because it's all from the same person.
2017-06-02 01:12:01 +02:00
Benjamin Neff
6817579072
Don't check parent_author_signature for relayables
...
This isn't needed, but we need to check if the sender of the Magic
Envelope is the parent author (so we have a valid signature from the
parent author there).
2017-06-02 01:12:00 +02:00
Benjamin Neff
6e51ae536b
Replace legacy webfinger with new route from .well-known
2017-05-29 00:43:39 +02:00
Benjamin Neff
ea00874c93
Add JSON support to WebFinger
2017-05-23 02:13:45 +02:00
Benjamin Neff
51f73b86fc
Merge pull request #62 from SuperTux88/protocol-next-step
...
Next step for the new protocol
2017-05-12 03:40:58 +02:00
Benjamin Neff
a759340e22
Merge pull request #61 from SuperTux88/improve-webfinger
...
Improve WebFinger generation
2017-05-12 03:40:43 +02:00
Benjamin Neff
deed1c3f3e
Prevent creation of Request entity
...
Related to #32
2017-05-10 02:39:46 +02:00
Benjamin Neff
71264f90af
Remove hack from EventParticipation
...
This is not needed anymore, because it generates now the correct xml
by default.
2017-05-10 02:39:46 +02:00
Benjamin Neff
b510ed868f
Rename xml_order to signature_order
...
Because it's also used for signatures in JSON.
2017-05-10 02:39:45 +02:00
Benjamin Neff
ba01882cb2
Remove generation code for legacy salmon slap from library
...
Create legacy_helper.rb to still generate old XMLs for the tests.
Related to #30
2017-05-10 02:37:25 +02:00
Benjamin Neff
18a23df8d5
Use Nokogiri::XML() instead of Nokogiri::XML::Document.parse()
2017-05-10 02:37:25 +02:00
Benjamin Neff
cd3a7abf4d
Remove sign-code from SignedRetraction and RelayableRetraction
...
Second step of #27
2017-05-10 02:37:24 +02:00
Benjamin Neff
e5b2ef71e8
Send MagicEnvelope as body with correct Content-Type
...
Related to #30
2017-05-10 02:37:24 +02:00
Benjamin Neff
1f99518706
Remove additional MagicEnvelope wrapper with diaspora header
...
Related to #30
2017-05-10 02:37:24 +02:00
Benjamin Neff
221d87d7fe
Send unwrapped entities
...
Remove the <XML><post>...</post></XML> wrapper.
Second step of #28
2017-05-10 02:37:24 +02:00
Benjamin Neff
52a8c89d4c
Send new property names in XML
...
Second step of #29
2017-05-10 02:37:24 +02:00
Benjamin Neff
87033e4cd6
Remove legacy signature ordering
...
Relayables are now ordered by the order of the properties of the entity.
Related to #26 , but still compatible with pods older than 0.6.3.0.
2017-05-10 02:37:22 +02:00
Benjamin Neff
41ebe13126
Make Participation entity non-relayable
...
Fixes #35
2017-05-10 02:36:29 +02:00
Benjamin Neff
b7167b9fde
Make Message entity non-relayable
...
Related to #36
2017-05-10 02:35:16 +02:00
Benjamin Neff
1b9dfc812e
Allow to generate WebFinger with additional data
...
This allows projects to use this library to generate the WebFinger
document when they already need WebFinger for other elements.
Also removed the explicit alias_url, aliases can now be added with
{aliases: [alias_url]} as second parameter.
2017-05-02 22:30:19 +02:00
Benjamin Neff
f8c3867262
Merge branch 'master' into develop
2017-05-01 01:57:40 +02:00
Benjamin Neff
cac3ba77d9
Release version 0.1.9
2017-05-01 01:52:45 +02:00
Benjamin Neff
5fef7633c3
Make optional properties optional when generating webfinger
2017-04-27 02:37:55 +02:00
Benjamin Neff
83a6434c32
Merge pull request #60 from SuperTux88/cleanup-webfinger-deprecations
...
Cleanup webfinger deprecations
2017-04-27 01:55:38 +02:00
Benjamin Neff
b788fbdad1
Remove more backward-compatibility code for discovery
...
This was needed for pods older than 0.5.2.0
2017-04-24 02:37:06 +02:00
Benjamin Neff
a3ad1ea7e4
Remove deprecated guid and public key from webfinger
...
Closes #39
This breaks compatibility with pods older than 0.5.3.0
2017-04-24 02:36:36 +02:00
Benjamin Neff
e81acd0a0f
Add public flag to profile entity
2017-04-23 23:18:17 +02:00
Benjamin Neff
bb3a4e0b2a
Generate gemfiles
2017-04-05 03:22:13 +02:00
Benjamin Neff
40919b4c69
Create change_time helper method
...
Time#change is an activesupport feature
Also: Use seconds instead of Numeric#minute and Numeric#hour
2017-04-05 00:36:53 +02:00
Benjamin Neff
26cfe7090b
Cleanup dummy rails app
2017-04-05 00:36:52 +02:00
Benjamin Neff
b0f6131527
Remove active_record and save models in-memory
...
Simple inmemory "database" to be independent from active_record.
2017-04-05 00:36:52 +02:00
Benjamin Neff
c0fbc83ccf
Remove rails4.rake
2017-04-04 22:14:13 +02:00
Benjamin Neff
7fe7a5da97
Don't generate file fixtures anymore
...
When we want to test without rails, we can't use the controllers to
generate them.
Also fixes the problem where there is still an old file fixture that
doesn't match the users in the database.
2017-04-04 22:14:13 +02:00
Benjamin Neff
184954e09c
Replace factory_girl with fabrication
...
factory_girl has activesupport as dependency
2017-04-04 22:14:13 +02:00
Benjamin Neff
b25e2293b0
Require "openssl" in diaspora_federation.rb
2017-04-04 22:09:25 +02:00
Benjamin Neff
ed2c2b7f47
Require "nokogiri" in diaspora_federation.rb
2017-04-03 03:45:29 +02:00
Benjamin Neff
9aeda2151e
Merge pull request #57 from cmrd-senya/allow-empty-signature
...
Allow empty strings for signatures in JSON relayables
2017-04-01 02:45:22 +02:00
cmrd Senya
7cc0112877
Allow empty strings for signatures in JSON relayables
2017-03-31 21:31:27 +03:00
Senya
43fd6cc7ff
Don't use versioning in JSON schema id
2017-03-30 09:51:43 +03:00
cmrd Senya
73a9b87607
A little fix to signature verification methods doc
2017-03-26 02:18:20 +02:00
cmrd Senya
626e59c68d
AccountMigration entity
...
A new entity to use when diaspora ID of a person has changed for some
reason (e.g. account migration, pod hostname change, etc)
2017-03-26 02:18:20 +02:00
cmrd Senya
f23f4c0ea4
Introduce Signable module
...
Signable is a module that encapsulate basic signature logic for entities.
2017-03-26 02:18:19 +02:00
cmrd Senya
c58d076c96
Entity JSON serialization/deserialization feature
2017-03-23 13:55:19 +02:00
Benjamin Neff
e1ad855cd8
Release version 0.1.8
2017-03-02 21:05:56 +01:00
Benjamin Neff
1f3293a403
Remove "try", because it is a rails feature
...
Also "&." is only available on ruby >= 2.3 (can be used later)
2017-01-26 02:21:51 +01:00
Benjamin Neff
4ff91a56cc
Add "uuid" as dependency for diaspora_federation-test
...
Because it is used in the factories.
2017-01-25 02:37:51 +01:00
Benjamin Neff
b34b18759f
Release version 0.1.7
2017-01-08 04:26:38 +01:00
Benjamin Neff
252b2794a4
Merge pull request #44 from SuperTux88/events
...
Add event entities
2017-01-08 03:52:39 +01:00
cmrd Senya
6e11fb6810
use enriched_properties in Entity#to_h
2017-01-07 22:55:53 +03:00
cmrd Senya
ad95813ff8
Replace ^ and $ with \A \z in patterns
...
One should use \A and \z unless explicitly wants the line-wise behavior.
2017-01-04 16:20:50 +03:00
cmrd Senya
a1c9998d40
fix boolean pattern parse
2017-01-04 06:32:41 +03:00
Benjamin Neff
9a7fd278b5
Fix parsing a false value
...
Fixes #45
2017-01-04 04:03:42 +01:00
Benjamin Neff
fd34472647
Add validators for events
2017-01-03 02:06:09 +01:00
Benjamin Neff
1097130988
Add code for event entities
2017-01-03 01:35:33 +01:00
Benjamin Neff
7be5097a59
fix travis for ruby 2.1 and rails 4
2016-12-28 20:53:31 +01:00
Benjamin Neff
d91da49078
release version 0.1.6
2016-12-28 19:06:22 +01:00
Benjamin Neff
dd1c16ce91
add types for string properties
2016-12-28 02:43:16 +01:00
Benjamin Neff
a91e3c2c97
move order logic to xml_elements
2016-12-27 12:40:24 +01:00
Benjamin Neff
3e8534c5c4
rename xml_elements to enriched_properties
2016-12-27 11:15:15 +01:00
Benjamin Neff
771a1559e3
Activate ruby 2.1 with rails 4.2 on travis again
2016-11-08 00:25:20 +01:00
Benjamin Neff
9dc6cabf42
release version 0.1.5
2016-10-24 00:44:14 +02:00
Benjamin Neff
d18e623082
fail send if redirected to other hostname
2016-10-24 00:22:15 +02:00
Benjamin Neff
fb60f83926
add sender parameter to :receive_entity callback
2016-10-17 00:06:03 +02:00
Benjamin Neff
7248aaec67
fix rubocop offenses for rubocop 0.44.1
2016-10-14 23:25:59 +02:00
Benjamin Neff
8c31d660db
release version 0.1.4
2016-08-22 00:11:47 +02:00
Benjamin Neff
4295237e9e
Raise ValidationError if properties are missing
2016-08-21 21:09:12 +02:00
Benjamin Neff
90d12e71d0
improve magic envelope validation
2016-08-01 02:41:28 +02:00
Benjamin Neff
52af7e4538
release version 0.1.3
2016-07-28 23:49:57 +02:00
Benjamin Neff
41de99bd5e
don't include signatures in xml_order on receive
2016-07-25 01:29:51 +02:00
Benjamin Neff
ba129aafa3
add missing properties from xml_order to xml
2016-07-23 00:29:44 +02:00
Benjamin Neff
36a787dd87
convert string in xml_order to symbol if needed
2016-07-23 00:12:22 +02:00
Benjamin Neff
40508a664c
release version 0.1.2
2016-07-15 01:31:04 +02:00
Benjamin Neff
90970973a5
gracefully handle missing xml elements of relayables
...
parent-fetching failed, if the xml didn't contain the information needed
for it.
fixes NameError: uninitialized constant DiasporaFederation::Entities::Like::PARENT_TYPE
2016-07-12 22:18:14 +02:00
Benjamin Neff
2aaff56e14
rename StatusMessage#raw_message to #text
...
see #29
2016-07-12 03:14:15 +02:00
Benjamin Neff
4b949491df
nickname is optional in the hCard
2016-07-12 03:13:40 +02:00
Benjamin Neff
f7d269cd6a
a guid is at most 255 chars long.
2016-07-12 03:13:40 +02:00
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