Skip to main content
jmbo-neo
========

jmbo-neo provides integration with Neo Web Services for jmbo and jmbo-foundry. It syncs jmbo-foundry's Member objects with consumers
in the Neo data hubs. Syncing refers to the creation, modification and deactivation of Neo consumers as Member objects are created, modified
and deactivated.

Authentication-related actions are also performed via Neo Web Services. These include logging in and out and changing passwords. jmbo-neo also
supports a number of other Neo API calls. These, in addition to the above mentioned, can be invoked as necessary in other jmbo apps.

Requirements
------------

System libraries
****************
- libxml2-dev
- libxslt-dev

Python packages
***************
- python-lxml
- requests

*jmbo-neo uses generateDS.py (http://cutter.rexx.com/~dkuhlman/generateDS.html) to generate Python classes from Neo XML schemas.*

Usage
-----

`neo.api` contains functions for all the supported Neo API calls. Consumer calls require either a consumer ID or consumer object (or both).
If a consumer has been created for a particular Member, a corresponding NeoProfile object will be stored in the database. So to obtain the
consumer ID, use `neo.models.NeoProfile(user=member.id).consumer_id`.

A consumer object is an instance of `neo.xml.Consumer`. Consumer should not be instantiated directly. Internally, jmbo-neo uses `neo.xml.parseString(response.content)`
to create a consumer object from the XML return by Neo Web Services. This object will be returned when calling, for instance, `neo.api.get_consumer`.
To access this consumer object, you should use the wrapper class `neo.utils.ConsumerWrapper`. It has all the necessary getter and setter methods to correctly
manipulate the consumer object, ensuring the resulting XML is valid.

**When using jmbo-neo, all non-required Member fields will be null, or set to their default values. Queries on Member objects
will return incorrect results.**

Settings
********
The following settings must be added to settings.py::

NEO = {
'URL': 'neowebservices.com/service/'
'APP_ID': '1',
'VERSION_ID': '1.3',
'PROMO_CODE': 'testPromo', # if there is a single promo code for the website
'BRAND_ID': 35, # if there is a single brand for the website
'PASSWORD': 'password', # http basic auth password
}

AUTHENTICATION_BACKENDS = ('neo.backends.NeoBackend',)

To-do
-----

1. Replace generateDS.py with `lxml.objectify`.
2. Mock testing calls to Neo API using `mock`.
Authors
=======

Praekelt Foundation
-------------------

* Rizmari VersfeldChangelog
=========

0.4.5.1 (17-01-2014)
--------------------
#. Increase upper limit on jmbo-foundry version.

0.4.5 (23-10-2013)
------------------
#. Log all API calls. Uses `neo.api` logger.

0.4.4.1 (28-09-2013)
--------------------
#. Add `ModifyFlag` to empty `Answer` element. Invalid otherwise.

0.4.4 (28-09-2013)
------------------
#. Add `answer_set` to `QuestionAnswerWrapper` for adding answers in bulk.

0.4.3 (18-06-2013)
------------------
#. Don't create consumer on member load - issue for views with many members and unmigrated accounts.

0.4.2 (14-06-2013)
------------------
#. Normalize login_alias, removing bad characters and padding it.
#. Add a validation module with validators for email, mobile_number and login_alias - to be expanded.
#. Fix error on `user_logged_out` if there is no authenticated user.

0.4.1 (06-06-2013)
------------------
#. Only clean via Neo if no local errors in join form.

0.4 (23-05-2013)
----------------
#. Use random password for Neo auth instead of actual user password.
#. Only `Member.full_clean` throws ValidationError, not `Member.save` anymore.
#. Remove auth backend and middleware. The user's plain text password isn't stashed in the session or on the `member` object anymore.
#. Add `created` field to `NeoProfile` - useful for checking consumer creation limit (10 000 per day at the moment).
#. Reduce test time by re-using an immutable member where possible.

0.3 (03-05-2013)
----------------
#. Add a new management command to export members for bulk upload:
``members_to_cidb_dataloadtool``
#. Automatically create consumers on CIDB for members on login.
#. Consumer creation deferred until a member is complete according to `RegistrationPreferences.required_fields`.
#. Consumer fields are kept in sync with member fields over MCAL.
#. Use `login_alias` instead of `Member.username` for CIDB communications.

0.2 (09-11-2012)
----------------
#. Create member if credentials are valid and the member does not exist.
#. Fix bug in logout.

0.1 (18-10-2012)
----------------
#. Initial release

Metadata

Release files for jmbo-neo 0.4.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jmbo-neo 0.4.5.1
File Size Uploaded
jmbo-neo-0.4.5.1.tar.gz 54.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jmbo-neo 0.4.5.1
File Interpreter ABI Platform
jmbo_neo-0.4.5.1-py2.7.egg Legacy Egg format - - Details

Total release size: 212.5 kB

Release files / jmbo-neo-0.4.5.1.tar.gz

Download URL jmbo-neo-0.4.5.1.tar.gz
Size 54.8 kB
Tags Source
SHA-256 checksum
How to use checksums
92ca1f532832fbd17cf079c2f8f90d3e191b6e31f3ac3caf072d9d3f3e766284
BLAKE2b-256 checksum
How to use checksums
3a56e12d8daa7781ea718636e23bd720a822e9b120a918eec5823abd49fe9fa2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / jmbo_neo-0.4.5.1-py2.7.egg

Download URL jmbo_neo-0.4.5.1-py2.7.egg
Size 157.7 kB
Tags Egg
SHA-256 checksum
How to use checksums
fe81407cc3bf3546fd998ccd76122d6e1b7525fe92725c9b539f0e90b95b6203
BLAKE2b-256 checksum
How to use checksums
ec9c43e686cec930d50754c7ee7a04ec5c579d0f18185950c02eaba1cc683acd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.4.5.1 This release

2 release files

0.4.5

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4

2 release files

0.3

2 release files

0.2

3 release files

0.1

3 release files

0.0.1

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page