On 15/10/2012 6:47am, Joshua Russo wrote:
I have project that I have been working and I was contemplating open
sourcing it but I ran into a little hang up. How to handle the database
authentication. The settings file obviously needs to be included but I
don't want to advertise the production database login. How is this
generally handled?
Although best practice seems to be separate local settings files I
prefer the same settings.py in both development and production. The big
problem of course is that sensitive information might end up in the
repository. And I haven't even considered open sourcing.
My solution is a tiny script called getcreds[1] which gets all the
necessary sensitive info whenever/wherever it is needed. I'm comfortable
that long in the future nothing sensitive was ever in the repo. That
includes certificate keys, passwords, userids, email addresses - anything.
I keep a private directory in which all my sensitive creds are kept in
plain text files with each item on a separate line. I adopt a personal
convention of userid, password, ip-address, port, etc etc. But it
doesn't matter because getcreds returns a list and creds[3] or creds[4]
can mean anything you want[2] in your seetings.
Mike
[1]
# -*- coding: utf-8 -*-
def getcreds(fname, credsdir='/var/creds/xxxx'):
""" Return a list of userid and password and perhaps other data.
make sure there are a few empty lines at the end of fname to avoid
keyerrors
"""
creds = []
fname = '%s/%s' % (credsdir, fname)
with open(fname, 'r') as f:
for line in f:
creds.append(line.strip())
return creds
[2]
#excerpt from settings ...
dbhost = getcreds.getcreds('db.host')
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': PROJECT,
'USER': dbhost[0],
'PASSWORD': dbhost[1],
'HOST': dbhost[2],
'PORT': dbhost[3],
Also, are there procedures that need to be followed to "properly" open
source a project, or is it really just choosing a licence and dubbing it so?
--
You received this message because you are subscribed to the Google
Groups "Django users" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/django-users/-/LJU31pYrcXgJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.
--
You received this message because you are subscribed to the Google Groups "Django
users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.