dotandru commited on
Commit
8c31f4f
·
1 Parent(s): 149e6f2

Merge user security changes

Browse files
Files changed (2) hide show
  1. .gitignore +5 -37
  2. firebase_manager.py +23 -8
.gitignore CHANGED
@@ -1,40 +1,8 @@
1
- # Python
2
  __pycache__/
3
- *.py[cod]
4
- *$py.class
5
- .venv/
6
- .venv_fix/
7
- venv/
8
- env/
9
- ENV/
10
-
11
- # OS
12
- .DS_Store
13
- Thumbs.db
14
- desktop.ini
15
-
16
- # Logs
17
- *.log
18
- server.log
19
-
20
- # Credentials
21
  .env
22
- serviceAccountKey_dev.json
23
- .google-credentials.json
24
-
25
- # Backups
26
- *.bak
27
-
28
- # Models & Large Binaries (Unused)
29
- phonikud-1.0.int8.onnx
30
-
31
- # Temporary / Cache
32
- .pytest_cache/
33
- test_results/
34
- temp/
35
- tmp/
36
  output_locus.txt
37
-
38
- # Media (Ignore test recordings)
39
- *.wav
40
- !welcome_speech_fixed.wav
 
 
1
  __pycache__/
2
+ *.pyc
3
+ *.pyo
4
+ serviceAccountKey*.json
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  .env
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  output_locus.txt
7
+ *.log
8
+ .DS_Store
 
 
firebase_manager.py CHANGED
@@ -25,22 +25,37 @@ class FirebaseManager:
25
  """Initialize Firebase Admin SDK with service account."""
26
  try:
27
  from config import FIREBASE_CREDENTIALS_PATH, STORAGE_BUCKET, IS_PRODUCTION
28
-
29
- cred_path = FIREBASE_CREDENTIALS_PATH
30
-
31
- if not os.path.exists(cred_path):
32
- logger.warning(f"MISSING: [FIREBASE] Missing credentials at {cred_path}. Audio/Storage will fail!")
33
- return
34
 
35
  if not firebase_admin._apps:
36
- cred = credentials.Certificate(cred_path)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  firebase_admin.initialize_app(cred, {
38
  'storageBucket': STORAGE_BUCKET
39
  })
40
  logger.info(f"SUCCESS: [FIREBASE] Initialized successfully for {'PROD' if IS_PRODUCTION else 'DEV'}.")
41
 
42
  self._bucket = storage.bucket()
43
-
44
  except Exception as e:
45
  logger.error(f"ERROR: [FIREBASE] Initialization failed: {e}")
46
 
 
25
  """Initialize Firebase Admin SDK with service account."""
26
  try:
27
  from config import FIREBASE_CREDENTIALS_PATH, STORAGE_BUCKET, IS_PRODUCTION
28
+ import json
 
 
 
 
 
29
 
30
  if not firebase_admin._apps:
31
+ cred_dict = None
32
+
33
+ # Try loading from environment variable first (for HF Secrets)
34
+ env_creds = os.environ.get("FIREBASE_CREDENTIALS_JSON")
35
+ if env_creds:
36
+ try:
37
+ cred_dict = json.loads(env_creds)
38
+ logger.info("INFO: [FIREBASE] Loading credentials from environment variable.")
39
+ except Exception as e:
40
+ logger.error(f"ERROR: [FIREBASE] Failed to parse FIREBASE_CREDENTIALS_JSON: {e}")
41
+
42
+ # Fallback to file if environment variable not set or failed
43
+ if not cred_dict:
44
+ if os.path.exists(FIREBASE_CREDENTIALS_PATH):
45
+ with open(FIREBASE_CREDENTIALS_PATH, "r", encoding="utf-8") as f:
46
+ cred_dict = json.load(f)
47
+ logger.info(f"INFO: [FIREBASE] Loading credentials from {FIREBASE_CREDENTIALS_PATH}.")
48
+ else:
49
+ logger.warning(f"MISSING: [FIREBASE] Missing credentials at {FIREBASE_CREDENTIALS_PATH} and env var unset.")
50
+ return
51
+
52
+ cred = credentials.Certificate(cred_dict)
53
  firebase_admin.initialize_app(cred, {
54
  'storageBucket': STORAGE_BUCKET
55
  })
56
  logger.info(f"SUCCESS: [FIREBASE] Initialized successfully for {'PROD' if IS_PRODUCTION else 'DEV'}.")
57
 
58
  self._bucket = storage.bucket()
 
59
  except Exception as e:
60
  logger.error(f"ERROR: [FIREBASE] Initialization failed: {e}")
61