-
Notifications
You must be signed in to change notification settings - Fork 80
[DONE] Yaal Coop/Add ActivityPub functionality #1170
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
️✅ There are no secrets present in this pull request anymore.If these secrets were true positive and are still valid, we highly recommend you to revoke them. 🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request. |
b2e297c to
c06326f
Compare
|
Bonjour, Si vous êtes certains que les "secrets" détectés par GitGuardian n'en sont pas, je vous invite à insérer les variables à ignorer dans un cartouche de ce type : # ggignore-start
# gitguardian:ignore
# Generate one using `openssl rand -hex 32`
PEERTUBE_SECRET=804061c0547350xxxxx
# ggignore-endOu pour éviter que toutes les configurations laissées par défaut partagent le même secret, mettez # Generate one using `openssl rand -hex 32`
PEERTUBE_SECRET=TO_CHANGE |
|
La migration de |
|
Bonjour, |
|
Je pense que ça va être compliqué de s'engager sur une livraison vendredi... Il nous reste des ajustements à faire et je suis en arrêt pour covid... |
|
nous prévoyons en effet une 3.8 pour mercredi prochain. Nous voulions avoir le temps de faire les review et test fonctionnel de votre contribution. |
|
Vous pouvez mettre à jour votre branche depuis develop pour recupérer la dernière version de pod et fixer les conflits |
3233327 to
b957ed5
Compare
7a90a1b to
2a45f72
Compare
|
Hello @Badatos , Concernant GitGuardian, j'ai tenté :
Localement, le précommit GitGuardian ne renvoie pas d'incidents. Mais la CI échoue toujours sur ces deux variables... |
|
Petite question, mise à part les gitguardian, est-ce que la PR est terminée ? si oui, pouvez-vous la passer en DONE qu'on puisse review svp ? Merci ! |
|
Non, je pense que la PR ne sera pas terminée avant la release... |
|
ha ok, comme la PR passait les tests, je le croyais mais pas grave ! |
|
En effet : |
|
On avance :) ... Mais toujours aucun "Follower" n'apparait sur pod-test :/ |
|
Le dump de data est toujours à None ? |
|
Lorsque le serveur 2 envoie une requete "follow" au serveur 1, voici ce qui apparait dans les requetes du serveur 1 : La dernière requete "/ap/inbox" est en HTTP 204 No Content, c'est normal ? |
|
Voici le data dump : |
|
Je pense qu'avec un pod dans un conteneur en local ça ne peut pas fonctionner. J'explique ce que je pense qu'il se passe :
Pour pouvoir aller plus loin, il faudrait avoir deux instances de pod accessibles l'une pour l'autre. Donc une autre instance de test, ou bien utiliser un service comme ngrok pour avoir une url pour le pod local dockerisé accessible depuis le web. |
|
Ok, merci pour les infos ! En attendant, je vous invite tout de même à modifier la ligne 136 du fichier views.py : if (
data["type"] in ("Announce", "Update", "Delete")
and not settings.TEST_SETTINGS
and not check_signatures(request)
):
return HttpResponse("Signature could not be verified", status=403)Après : if (
data is None or
(data["type"] in ("Announce", "Update", "Delete")
and not settings.TEST_SETTINGS
and not check_signatures(request))
):
return HttpResponse("Signature could not be verified", status=403)Ca évitera de déclencher une Exception quand data est None. |
|
J'ai 'ajouté un try except pour clarifier et logger les erreurs. |
|
J'ai rebase sur develop, il y avait un conflit. |
|
Hello ! Bonne année ! |
Merci Loan ! |
|
@Badatos |
|
Bonjour @azmeuk Pour cette PR ActivityPub, tout dépend donc de la version visée : pour la V3 elle peut continuer à se baser sur "develop", et pour une intégration éventuelle à la V4 il faudrait alors plutôt attendre la sortie de la V4 et la création de la branche "develop4" à priori, car nous sommes en phase de finalisation et aucune nouvelle fonctionnalité ne doit s'ajouter à la 4.0 |
|
Pour le moment cette PR vise la v3, si c'est acceptable alors gardons les choses comme ça. J'aurai un peu de temps disponible dans les semaines à venir pour aider à la relecture de la PR et la fusionner. Nous souhaitons terminer la mission sur ActivityPub mais nous ne pourrons pas garantir d'avoir de la disponibilité pour aider à la relecture d'ici quelques semaines. Qu'en dis-tu ? |
Je n'ai malheureusement plus de serveur de test Esup-Pod en V3 disponible pour permettre un test croisé de connexion AP, et les prochains mois sont plutôt chargés ici, entre les exams, la mise à jour des serveurs pendant la pause pédagogique, puis la rentrée... Peut-être voir avec un autre membre de la communauté, @marchal-julien peut-être ? |
|
Est-ce que cibler la v4 au lieu de la v3 aiderait pour une relecture plus rapide ? |
Le problème selon moi n'est pas au niveau de la relecture, mais des tests fonctionnels. |
|
Est-ce que si nous mettons en place un docker-compose qui lance deux instances de pod+AP ça permettrait de valider la PR, ou bien faut-il nécessairement un environnement de tests grandeur nature ? |
New configuration
ActivityPub signature
Full documentation about ActivityPub requests signatures can be found
pod/activitypub/README.md-> new public and private keys are needed for ActivityPub to workpod/activitypub/ap.keypod/activitypub/ap.pub.Requirements before running container
You need to run migrations for the new ActivityPub models
Follower,Following,ExternalVideoand for some changes inVideomodel.ElasticSearch index needs also to be rebuilt:
idwas alongnumber, it is now akeyword, andis_externalis a newboolean.Local testing
docker-compose-full-dev-with-volumes.ymlnow launches a Peertube instance available onpeertube.localhost:9000for testing purpose.To be able to use a local version, from previous builds, the
Siteobject must be changed on Django admin to point onpod.localhost:8000.You can federate to an instance by adding its url in Django admin,
FollowingthenSend the federation requestaction.To get existing videos via ActivityPub of a followed instance, you also need to
Reindex the instance videos.