Skip to content
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

Add external data manager #246

Closed
wants to merge 22 commits into from
Closed

Conversation

trecouvr
Copy link
Member

Fix #245
May Fix #234

Je me suis écarté un peu de ce qui était écrit, pour commencé j'ai fait un service qui permet aussi bien de stocker des informations au niveau d'une fundation que d'un utilisateur d'une fundation.
Ensuite j'ai un peu changer l'ordre des parametres pour mettre le user en facultatif.
Et puis j'ai pas pris le nom de table proposé, j'ai appellé ca des données externes, donc t_external_data_exd.

}
}
$qb = Dbal::createQueryBuilder();
$qb->update('t_external_data_exd', 'exd');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

En gros quand il y'a un insert, tu reupdates derrière... ça fait une requête inutile, c'est donc non performant...

@apuyou
Copy link
Member

apuyou commented Sep 22, 2013

Je kiffe le fait que le user soit facultatif, pour stocker des préférences c'est cool.

@mattgu74
Copy link
Member

mattgu74 commented Oct 1, 2013

Tu peux ajouter des droits ? Genre lecture/ecriture pour les autres fundations ?
genre si on fait l'analogie avec les CHMOD je dirais que tu n'as que RW (lire/ecrire) pas besoin d’exécution et que tu as 3 types d'users: la fundation elle même, les autres fundations et l'utilisateur.

Je n'ai pas encore d'usage précis en tête, mais ça me semble évident que ça peut être utile.

@trecouvr
Copy link
Member Author

trecouvr commented Oct 1, 2013

Oui j'y avais pensé aussi. Mais je pense qu'il faut attendre que le cas concret se présente ^^

@mattgu74
Copy link
Member

mattgu74 commented Oct 1, 2013

C'est peut être plus simple de le faire maintenant (tout du moins la structure de la db, quitte à ne pas encore coder toutes les méthodes). Parce que après pour faire les migrations de la DB et adapter le bordel (voir remettre les bons droits... ça sera plus chiant...)

{
$this->addSql("
DROP TABLE `t_external_data_exd`;
ALTER TABLE `payutc`.`t_external_data_exd` DROP INDEX `fun_usr_key_uniq`;");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ça ça ne fonctionnera pas.

return $usr;
}

protected function get($fun_id, $key, $usr = null) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Du coup il faut que $usr soit un array. Il n'y avait pas un bug dans payutc-json-client qui empêchait l'envoi d'array en paramètre ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cette méthode est protected, c'est celle qui est utilisée par les autres fonctions (c'est celle aussi qui fait le checkright)

@mattgu74
Copy link
Member

mattgu74 commented Oct 6, 2013

Considère-t-on que les key des données sont "secrètes" et permettent d'une certaine manière l'isolation des données entre les applications (pour que deux applications partagent une donnée, elles ont besoin de savoir quelle donnée modifier...)

Du coup chaque application doit préfixer ces clefs avec une clef "secrète" pour être isolé dans un namespace (avec le risque qu'une autre application tombe dessus).

ça peut me convenir comme première implémentation, bien qu'ils ne faillent pas stocker d'information trop critique, les données n'étant pas si bien sécurisé (après si quelqu'un fait de la merde, les applications étant authentifiés... On sait sur qui taper...)

Si on ne considère pas que les clefs sont secrètes, il faudrait isoler les applications et ajouter une méthode pour qu'une application puissent récupérer d'un coup d'un seul toutes les données qu'elle a stocké.

@apuyou
Copy link
Member

apuyou commented Oct 6, 2013

Et la clé secrète (qui sert à préfixer), on la stocke où ?

J'aime pas trop :(

@mattgu74
Copy link
Member

mattgu74 commented Oct 6, 2013

Ce serait un truc interne à l'appli... Dans ta conf tu décides de
préfixer... (de toute façon si tu ne le fais pas tu risque les collisions
avec les autres applis...)

J'aime pas trop non plus, y'a pas mal de truc incohérent dans la gestion
des droits du datamanager pour l'instant.

Matthieu GUFFROY

2013/10/6 Arthur Puyou [email protected]

Et la clé secrète (qui sert à préfixer), on la stocke où ?

J'aime pas trop :(


Reply to this email directly or view it on GitHubhttps://github.com//pull/246#issuecomment-25766677
.

@trecouvr
Copy link
Member Author

trecouvr commented Oct 6, 2013

Quelles collisions ? J'ai concu tout le truc pour que les données appartiennent aux une fondations, pas aux applications ni aux un users (parce que ecocup appartient au pic). Si c'est pas ca qu'il faut faut tout revoir beaucoup de choses (faut notamenet ajouter une colonne owner).

@mattgu74
Copy link
Member

mattgu74 commented Oct 6, 2013

Ok j'avais pas fait attention à ça. Donc tu confirmes qu'il y'a "namespace" par fundation (même si c'est pas vraiment des namespace) je veux dire la fundation 1 peut avoir une variable "A" et la fundation 2 égallement une variable "A" sans qu'il y'ait de problème ?

@trecouvr
Copy link
Member Author

trecouvr commented Oct 7, 2013

Bien sur,
lors du get tu peux récupérer que des données liées a la fondation que tu passes en parametre.

@mattgu74
Copy link
Member

Si tu corriges les deux checkRight et que tu remets ta PR a jour (pour qu'elle soit mergeable) je suis prêt à l'accepter.

@trecouvr
Copy link
Member Author

Je suis moyen chaud pour la merge, on avait trouvé un truc mieux sur un gdoc, et je prefererai beaucoup que ça soit fait en mongodb. Mongodb parce que Mongodb autorise à mettre des types différents dans la db, genre on pourra mettre des int et faire des increments propres et atomiques.

@trecouvr
Copy link
Member Author

Si ils ont leur serveurs ils peuvent installer mongodb. En tous les cas je voulais changer des trucs dans l'implémentation courante faut que je retrouve le doc.

@apuyou
Copy link
Member

apuyou commented Nov 27, 2013

Pour info, nous on pourrait l'installer (le problème avec OpenVZ est un mythe). Mais je bosse avec ce semestre, et c'est pas ce qu'il y a de plus léger, donc ça m'ennuie un peu de rajouter une couche pareille juste pour stocker des données qui ne sont même au cœur du serveur...

@mattgu74
Copy link
Member

mattgu74 commented Mar 5, 2014

On en fait quoi de cette PR ? On la jette ?

@mattgu74
Copy link
Member

Je ferme la PR, on réouvrira le jour ou l'on sera ce qu'on veut faire à ce sujet.

@mattgu74 mattgu74 closed this Mar 15, 2014
@trecouvr trecouvr deleted the add-external-data branch August 22, 2014 18:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Stockage de donnée utilisateur par les fundations Stock d'ecocup
3 participants